関数 SafeRequest(ParaName,ParaType)
'--- パラメータを渡します---
'ParaName: パラメータ名 - 文字タイプ
'ParaType: パラメーターの種類 - 数値型 (1 は上記のパラメーターが数値であることを示し、0 は上記のパラメーターが文字であることを示します)
ディムパラバリュー
ParaValue=リクエスト(パラネーム)
ParaType=1 の場合、
isNumeric(ParaValue) でない場合は、
Response.write パラメータ & ParaName & は数値である必要があります。
応答.終了
次の場合に終了
それ以外
ParaValue=replace(ParaValue, ', ' ')
次の場合に終了
SafeRequest=ParaValue
終了機能
request.form() と request..querystring() の代わりに SafeRequest(ParaName,ParaType) を使用します。
************************************************* * ************************************************ ** *****
-------------------------------------------------- -------------------------------------------------- --------------------------------------
************************************************* * ************************************************ ** *****
<%
dimsql_injdata
sql_injdata= '|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare
sql_injHint=replace(sql_injdata,|, )
sql_injHint=replace(sql_injHint, ', ')
sql_inj=split(sql_injdata,|)
if request.querystring<> then
request.querystring 内の各 getData について
for i=0 から ubound(sql_inj)
if instr(lcase(request.querystring(getData)),sql_inj(i))>0 then
hint=alert( 'ユーザー情報のセキュリティを確保するため、不正なインジェクション文字を使用しないでください。次の文字は不正です: @sql_injHint@ ');
ヒント=置換(ヒント,@sql_injHint@,sql_injHint)
response.write <スクリプト言語=javascript>
応答.書き込みヒント
応答.書き込み履歴.back()
応答.write </script>
応答.終了
終了する場合
次
次
終了する場合
request.form<> の場合、
request.querystring 内の各 getData について
for i=0 から ubound(sql_inj)
if instr(lcase(request.form(getData)),sql_inj(i))>0 then
hint=alert( 'ユーザー情報のセキュリティを確保するため、不正なインジェクション文字を使用しないでください。次の文字は不正です: @sql_injHint@ ');
ヒント=置換(ヒント,@sql_injHint@,sql_injHint)
response.write <スクリプト言語=javascript>
応答.書き込みヒント
応答.書き込み履歴.back()
応答.write </script>
応答.終了
終了する場合
次
次
終了する場合
%>このコードをファイル (defanj.asp など) に形式化し、データベースで使用する必要があるすべてのファイルをヘッダーに追加します <!--#include file=defanj.asp-->