REM ##長い整数変換
functiontonum(s、デフォルト)
ifisnumeric(s)ands <> "" then
tonum = clng(s)
それ以外
tonum = default
endif
エンド機能
REM ## SQLステートメント変換
functiontosql(str)
ifisnull(str)thstr = ""
tosql =置換(str、 "''"、 "'' '")
エンド機能
例:
dimsql
dimstrawwhere、strname、intage
strname = tosql(request( "user"))
intage = tonum(request( "age")、20)
sql = "select*from [user]"&_
「ここで[age]>」&strname&_
"and [username] = ''"&intage& "''"
一般的に、上記の2つの機能を考慮することにより、SQL注入攻撃を排除できます!必要だと思われる場合は、CHR(0)の代替品を追加し、TOSQL関数を次のように変更できます。
functiontosql(str)
ifisnull(str)thstr = ""
str =置換(str、chr(0)、 "")
tosql =置換(str、 "''"、 "'' '")
エンド機能
また、注:
*************************************************************** -
外部で送信された関数を検出します
functioncheckurlrefer()
Dimstrlocalurl、Inturllen、StrurRefer
strlocalurl = "http://127.0.0.1"
inturllen = len(strlocalurl)
strurlrefer = lcase(request.servervariables( "http_referer")& "")
''前のページがStrlocalurlから来ているかどうかを検出します
ifleft(Strurlrefer、inturllen)= strlocalurlthen
Checkurlrefer = true
それ以外
Checkurlrefer = false
endif
エンド機能
*************************************************************** -
この関数は、外部SQLインジェクションテストに抵抗するのに役立ちます。ページの先頭に電話するだけです。
ASPプログラムを2つの単純な小さな機能でより安全にしてください!
私を修正するためのようこそ(これらの2つの機能をバイパスする方法を書きます)!
関連するディスカッションページ:
http://community.csdn.net/expert/topicview.asp?id=3585010
http://community.csdn.net/expert/topicview.asp?id=3582230
http://community.csdn.net/expert/topic/3589/3589480.xml?temp=.4866449
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
dimqs、errc、iii
qs = request.servervariables( "query_string")
Dimnothis(18)
何もない(0)= "Netuser"