最近、ASP プログラム(SQL インジェクションの脆弱性がある)を修正したため、関連する防止方法をインターネットでたくさん見つけましたが、どれも満足のいくものではなかったので、インターネット上のいくつかの方法を包括的に改良してこれを書きました。 ASP機能をご参考までに。
ここに引用があります:
関数 SafeRequest(ParaName)
ディムパラバリュー
ParaValue=リクエスト(パラネーム)
IsNumeric(ParaValue) = True の場合
SafeRequest=ParaValue
終了関数
elseIf Instr(LCase(ParaValue),"select ") > 0 または Instr(LCase(ParaValue),"insert ") > 0 または Instr(LCase(ParaValue),"delete from") > 0 または Instr(LCase(ParaValue) ,"count(") > 0 または Instr(LCase(ParaValue),"drop table") > 0 または Instr(LCase(ParaValue),"update ") > 0 または Instr(LCase(ParaValue),"truncate ") > 0 または Instr(LCase(ParaValue),"asc(") > 0 または Instr(LCase(ParaValue),"mid(") > 0 または Instr(LCase(ParaValue),"char(") > 0 または Instr(LCase (ParaValue),"xp_cmdshell") > 0 または Instr(LCase(ParaValue),"exec master") > 0 または Instr(LCase(ParaValue),"net localgroupAdministrators") > 0 または Instr(LCase(ParaValue),"および ") > 0 または Instr(LCase(ParaValue),"net user") > 0 または Instr(LCase(ParaValue)" または ") > 0 の場合
Response.Write "<script language='javascript'>"
Response.Write "alert('不正なリクエスト!');" 'SQL インジェクション攻撃プロンプト メッセージが見つかりました
Response.Write "location.href='http://blog.downcodes.com/';" SQL インジェクション攻撃のリダイレクト URL が見つかりました
応答。「<スクリプト>」を書き込みます
応答.終了
それ以外
SafeRequest=ParaValue
終了の場合
End 関数は
リクエストを SafeRequest 関数に置き換えます