2017-10-07 58 views
0

我想比較輸入(用戶名和密碼)存儲從login_form.asp調用我的login.asp驗證頁面。除了正則表達式的條件,我有代碼工作。在添加if語句以比較條件之前,該頁面會崩潰,然後再繼續。我只想在連接嘗試之前允許a-z0-9輸入。如果我註釋掉if條件,則表單驗證有效,但不是正則表達式。這是ASP Classic。感謝您的任何見解或幫助。Tryiing消毒用戶輸入與正則表達式vbscript

這裏是我一起工作的代碼:

dim userName, password, query 
dim conn, rs 
Dim reg 
Set reg = new RegExp 
reg.Pattern = "[a-z0-9] + @[a-z0-9\.] +" 

userName = Request.Form("userName") 
password = Request.Form("password") 

response.write userName & "<P>" 

if reg.Test("userName") then 
response.write "regex userName = true" 
endif 

if reg.Test("password") then 
response.write "regex password = true" 
endif 

set conn = server.createObject("ADODB.Connection") 
set rs = server.createObject("ADODB.Recordset") 

query = "select UserName from users where userName='" & userName & "' 
and  userPass='" & password & "'" 
response.write query & "<P>" 

回答

0

嘗試

regext.test(用戶名)

,而不是

regex.test( 「用戶名」)

第二個運行字符串文字「用戶名」,而不是變量,到regex.test()

你的正則表達式看起來也很奇怪。

regexlib.com具有正則表達式的搜索選擇..

最後,你可能會重新考慮你的方法做數據庫查詢。你如何做到這一點是開放的SQL注入攻擊。使用參數對象ado。