尝试使用regex vbscript清理用户输入

时间:2017-10-07 15:58:34

标签: vbscript

我正在尝试比较从login_form.asp存储的输入(用户名和密码),该输入调用我的login.asp验证页面。我有代码工作,除了正则表达式条件。在继续之前,我将if语句添加到比较条件时页面崩溃。我只想在连接尝试之前允许a-z0-9输入。如果我注释掉if条件,表单验证工作,但不是正则表达式。这是ASP Classic。感谢您的任何见解或帮助。

以下是我正在使用的代码:

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>"

1 个答案:

答案 0 :(得分:0)

regext.test(用户名)

而不是

regex.test(&#34;用户名&#34)

第二个运行字符串文字&#34;用户名&#34;而不是变量,运行到regex.test()

你的正则表达式看起来也很奇怪。

regexlib.com有可搜索的正则表达式选择..

最后,您可能会重新考虑进行数据库查询的方法。如何做到这一点是开放的SQL注入攻击。使用ado的Parameters对象。

相关问题