Не уверен, что это все еще актуально для вас, но у меня уже было это в прошлом, так как мы все еще работаем с некоторыми старыми сайтами asp. Есть две вещи, которые вы должны очистить это. Во-первых, это поиск и замена хранимой процедуры для вашей базы данных (достаточно легко для Google это), если вы можете сойти с рук. К сожалению, иногда данные обрезаются в зависимости от типа поля, но тут делать нечего. В противном случае необходим откат для вашей базы данных.
Во-вторых, вставьте сценарий предотвращения взлома SQL, например, как include перед подключением к вашей базе данных:
Удачи.
<%
' SqlCheckInclude.asp
'
' This is the include file to use with your asp pages to
' validate input for SQL injection.</p>
<p>Dim BlackList, ErrorPage, s</p>
<p>'
' Below is a black list that will block certain SQL commands and
' sequences used in SQL injection will help with input sanitization
'
' However this is may not suffice, because:
' 1) These might not cover all the cases (like encoded characters)
' 2) This may disallow legitimate input
'
' Creating a raw sql query strings by concatenating user input is
' unsafe programming practice. It is advised that you use parameterized
' SQL instead. Check <a href="http://support.microsoft.com/kb/q164485/" rel="nofollow">http://support.microsoft.com/kb/q164485/</a> for information
' on how to do this using ADO from ASP.
'
' Moreover, you need to also implement a white list for your parameters.
' For example, if you are expecting input for a zipcode you should create
' a validation rule that will only allow 5 characters in [0-9].
'</p>
<p>BlackList = Array("--", ";", "/<em>", "</em>/", "@@", "@",_
"char", "nchar", "varchar", "nvarchar",_
"alter", "begin", "cast", "create", "cursor",_
"declare", "delete", "drop", "end", "exec",_
"execute", "fetch", "insert", "kill", "open",_
"select", "sys", "sysobjects", "syscolumns",_
"table", "update")</p>
<p>' Populate the error page you want to redirect to in case the
' check fails.</p>
<p>ErrorPage = "/ErrorPage.asp"</p>
<p>'''''''''''''''''''''''''''''''''''''''''''''''''''<br>
' This function does not check for encoded characters
' since we do not know the form of encoding your application
' uses. Add the appropriate logic to deal with encoded characters
' in here
'''''''''''''''''''''''''''''''''''''''''''''''''''
Function CheckStringForSQL(str)
On Error Resume Next </p>
<p>Dim lstr </p>
<p>' If the string is empty, return true
If ( IsEmpty(str) ) Then
CheckStringForSQL = false
Exit Function
ElseIf ( StrComp(str, "") = 0 ) Then
CheckStringForSQL = false
Exit Function
End If</p>
<p>lstr = LCase(str)</p>
<p>' Check if the string contains any patterns in our
' black list
For Each s in BlackList</p>
<pre><code>If ( InStr (lstr, s) <> 0 ) Then
CheckStringForSQL = true
Exit Function
End If
Далее
CheckStringForSQL = false
Функция завершения
'' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''» «» «»
Проверьте данные формы
«» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «
Для каждого в запросе. Форма
If (CheckStringForSQL (Request.Form (s))) То
' Redirect to an error page
Response.Redirect(ErrorPage)
End If
Далее
'' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''» «» «»
'Проверить строку запроса
«» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «
Для каждого с в Request.QueryString
If (CheckStringForSQL (Request.QueryString (s))) То
' Redirect to error page
Response.Redirect(ErrorPage)
End If
Далее
'' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''» «» «»
'Проверьте куки
«» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «
Для каждого в запросе. Печенье
If (CheckStringForSQL (Request.Cookies (s))) То
' Redirect to error page
Response.Redirect(ErrorPage)
Конец, если
Далее
'' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''» «» «»
Добавить дополнительные проверки для ввода, что ваше приложение
'использует. (например, различные заголовки запроса вашего приложения
может использовать)
«» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «
%>