Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
ASP+MsSQL = иньекция
|
|||
|---|---|---|---|
|
#18+
Вопрос такой... есть сайт, на ASP, писал не я взял готовый... он работает с MsSQL, на сайте есть регистрация, и разная статистика, которая берется из MsSQL 2000. проблема в том что недоброжелатели путем вписания в адрестную строку браузера, делают SQL иньекции, перезаписывают базу. В АСП я неселен, я так понимаю что надо сделать проверку или запретна определенные знаки в строке... Что именно и куда писать, или может есть еще способ предотвратить это? Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2005, 15:23 |
|
||
|
ASP+MsSQL = иньекция
|
|||
|---|---|---|---|
|
#18+
авторнедоброжелатели путем вписания в адрестную строку браузера , делают SQL иньекции, перезаписывают базу. Круто устроено!!! Посоветовать чтоли этим добрым людям drop database написать Вообще нужно запретить ввод каких-либо команд sql откуда-то ни было. Что за бред - руки бы и голову оторвать у того программиста, который так сделал. -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2005, 17:01 |
|
||
|
ASP+MsSQL = иньекция
|
|||
|---|---|---|---|
|
#18+
Ах вон оно как!!! Я то думал, это фича сайта, а это во как оно оказывается!!! Ну тада приношу извинения. В Тынце до фига чего написано, действительно. Что в итоге - проверять на недопустимые символы в данных, которые указывает клиент. Это ', &, = , or, and, и т.д. -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2005, 17:07 |
|
||
|
ASP+MsSQL = иньекция
|
|||
|---|---|---|---|
|
#18+
А использование ХП не поможет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2005, 17:11 |
|
||
|
ASP+MsSQL = иньекция
|
|||
|---|---|---|---|
|
#18+
) а где советы? или примеры )? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2005, 17:41 |
|
||
|
ASP+MsSQL = иньекция
|
|||
|---|---|---|---|
|
#18+
) или не кто не хочит помогать ) , или проблема нерешена эта... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2005, 19:41 |
|
||
|
ASP+MsSQL = иньекция
|
|||
|---|---|---|---|
|
#18+
Я же написал -там, где производится обращение к sql-серверу, перед этим проверяй все введенные данные (они лежат в переменных, которые подставляются в sql, посмотри в коде) на недопустимые символы. -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2005, 11:46 |
|
||
|
ASP+MsSQL = иньекция
|
|||
|---|---|---|---|
|
#18+
SKoS) или не кто не хочит помогать ) , или проблема нерешена эта... если хочешь, пришли этот софт на мой маил со SQL скриптами для базы данных, я посмотрю, может что-то посоветую ... или поправлю. А так - это как "гадать на кофейной гуще". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2005, 19:12 |
|
||
|
ASP+MsSQL = иньекция
|
|||
|---|---|---|---|
|
#18+
prog_kaptur SKoS) или не кто не хочит помогать ) , или проблема нерешена эта... если хочешь, пришли этот софт на мой маил со SQL скриптами для базы данных, я посмотрю, может что-то посоветую ... или поправлю. А так - это как "гадать на кофейной гуще". маил что то не нахожу, куда отправить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2005, 15:24 |
|
||
|
ASP+MsSQL = иньекция
|
|||
|---|---|---|---|
|
#18+
В некоторых случаях может помочь ХП, например: Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2005, 16:11 |
|
||
|
ASP+MsSQL = иньекция
|
|||
|---|---|---|---|
|
#18+
Вообще-то самая правильная защита от инъекций - это использование запросов с параметрами - то есть не самому проверять корректность отсылаемой строки на SQL-сервер, а переложить эту заботу на драйвер СУБД. в ASP.NET - это SqlParameter, в ASP - тоже есть что-то аналогичное, сейчас уже точно не помню. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2005, 17:31 |
|
||
|
ASP+MsSQL = иньекция
|
|||
|---|---|---|---|
|
#18+
Вот к примеру скрипт смены пароля... <!--#include file="config.asp" --> <% on error resume next if request.form("username")<>"" then ps_loginname=request.form("username") ps_oldpsd=request.form("oldpsd") ps_psd1=request.form("psd1") ps_psd2=request.form("psd2") if instr(ps_loginname,"'")<>0 or instr(ps_loginname,"=")<>0 or instr(ps_loginname,"&")<>0 or instr(ps_loginname,"%")<>0 then response.write "Ne pravelnyj login" response.end end if if ps_loginname="" or ps_oldpsd="" or ps_psd1="" or ps_psd2="" then response.write "<script language=javascript>alert('Заполните все поля');history.back();</script>" response.end end if if ps_psd1<>ps_psd2 then response.write "<script language=javascript>alert('Не правельный пароль');history.back();</script>" response.end end if set rs1 = Server.CreateObject("ADODB.Recordset") sql="select * from MEMB_INFO where memb___id = '"&ps_loginname&"'" rs1.open sql,conn,1,3 chg=0 if not rs1.eof then if ps_oldpsd=rs1("memb__pwd") then rs1("memb__pwd")=ps_psd1 rs1.update chg=1 else chg=2 end if else chg=3 end if if chg=1 then response.write "<script language=javascript>alert('Пароль изменен!');location.href='home.asp';</script>" if chg=2 then response.write "<script language=javascript>alert('Не правельный старый пароль');history.back();</script>" if chg=3 then response.write "<script language=javascript>alert('Не правельный акаунт');history.back();</script>" rs1.close set rs1=nothing conn.close set conn=nothing response.end else %> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2005, 22:49 |
|
||
|
ASP+MsSQL = иньекция
|
|||
|---|---|---|---|
|
#18+
Я тоже не могу защититься от sql-инъекций. Подскажите, пожалуйста. Сайт на ASP, база MSSQL <% x=Request.QueryString Set conx = Server.CreateObject("ADODB.Connection") conx.Open "DSN=myDSN" SQL = "SELECT ID, date, modified, guid FROM posts WHERE post_status = 'publish' and id=" & x Set rs = Server.CreateObject("ADODB.Recordset") Set rs = conx.Execute(SQLTITL) %> Как все таки проверять корректность отсылаемой строки на SQL-сервер? Как запретить ввод каких-либо команд sql ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2014, 14:29 |
|
||
|
ASP+MsSQL = иньекция
|
|||
|---|---|---|---|
|
#18+
lenashЯ тоже не могу защититься от sql-инъекцийиспользуйте параметры ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2014, 14:30 |
|
||
|
ASP+MsSQL = иньекция
|
|||
|---|---|---|---|
|
#18+
Что нужно использовать параметры, я прочитала в интернете. Я не знаю как? Что значит использовать параметры. Можно пример? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2014, 14:39 |
|
||
|
ASP+MsSQL = иньекция
|
|||
|---|---|---|---|
|
#18+
делаю вот так: <% dim sql, cn, cmd, x Set conx = Server.CreateObject("ADODB.Connection") conx.Open "DSN=myDSN" sql = "SELECT xxx, yyy FROM table WHERE id= :p_id" set cmdx = Server.CreateObject("ADODB.Command") set rs = Server.CreateObject("ADODB.Recordset") with cmdx .ActiveConnection = conx .CommandText = sql .CommandType = adCmdText .Parameters.Append.CreateParameter("@p_id", adNumeric, adParamInput, , x) end with set rs = cmdx.execute %> и вот такая ошибка Ошибка компиляции Microsoft VBScript ошибка '800a0414' Недопустимо использование скобок при вызове процедуры Sub на строке .Parameters.Append.CreateParameter("@p_id", adNumeric, adParamInput, , x) Подскажите, пожалуйста, почему, что не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 13:08 |
|
||
|
ASP+MsSQL = иньекция
|
|||
|---|---|---|---|
|
#18+
перечитайте пример по моей ссылке еще раз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 13:19 |
|
||
|
ASP+MsSQL = иньекция
|
|||
|---|---|---|---|
|
#18+
Я не понимаю в чем ошибка, подскажите, пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 13:29 |
|
||
|
ASP+MsSQL = иньекция
|
|||
|---|---|---|---|
|
#18+
предполагаю, что проблема в недопустимом использовании скобок посмотрите на пример по моей ссылке обратите внимание как там используются скобки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 13:31 |
|
||
|
ASP+MsSQL = иньекция
|
|||
|---|---|---|---|
|
#18+
Именно как там я пробовала, тогда ошибка вот такая - Аргументы имеют неверный тип, выходят за пределы допустимого диапозона или вступают в конфликт друг с другом. Но все ведь по синтаксису. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 13:37 |
|
||
|
ASP+MsSQL = иньекция
|
|||
|---|---|---|---|
|
#18+
показывайте как пробовали ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 13:40 |
|
||
|
ASP+MsSQL = иньекция
|
|||
|---|---|---|---|
|
#18+
<% dim sql, cn, cmdx, x Set conx = Server.CreateObject("ADODB.Connection") conx.Open "DSN=myDSN" sql = "SELECT xxx,yyy FROM table WHERE id= :p_id" set cmdx = Server.CreateObject("ADODB.Command") Set rs = Server.CreateObject("ADODB.Recordset") cmdx.ActiveConnection = conx cmdx.CommandText = SQLTITL cmdx.Parameters.Append(cmdx.CreateParameter("@p_id", adNumeric, adParamInput, , x)) set rs = cmdx.execute %> в этом случае такая ошибка ADODB.Command ошибка '800a0bb9' Аргументы имеют неверный тип, выходят за пределы допустимого диапазона или вступают в конфликт друг с другом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 13:51 |
|
||
|
|

start [/forum/topic.php?fid=18&tid=1357648]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
54ms |
get topic data: |
11ms |
get forum data: |
4ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
| others: | 253ms |
| total: | 421ms |

| 0 / 0 |
