正则表达式可以用来防止SQL注入吗
Can a Regular Expression Be Used to Prevent SQL Injection
在我问之前 - 我确实知道 paranterised 查询但是这个问题特别是 baout 正则表达式以防止 SQL 注入
假设我有一个参数为 q
的查询字符串,我有一个 ^201[0-9]Q[0-9]$
的正则表达式,我 运行 反对传递给 SQL 的参数.
这足以作为保护吗?还是可以利用正则表达式?一些伪代码:
if NOT validateToken(quarter) then
sql = "EXEC dbo.spTest '"&quarter&"'"
end if
谢谢
在你的情况下,是的,检查足以防止 SQL 注入。
您提供的检查类型是处理用户输入时所需的检查类型。
因此,根据经验,您永远不应连接用户提供的数据和 SQL 代码,除非您对参数的内容进行了全面检查。
等等!您是在 .Net 还是 SQL 中检查参数?如果在 .Net 中,你就安全了。
如果不安全代码达到 SQL,你就完蛋了。
在我问之前 - 我确实知道 paranterised 查询但是这个问题特别是 baout 正则表达式以防止 SQL 注入
假设我有一个参数为 q
的查询字符串,我有一个 ^201[0-9]Q[0-9]$
的正则表达式,我 运行 反对传递给 SQL 的参数.
这足以作为保护吗?还是可以利用正则表达式?一些伪代码:
if NOT validateToken(quarter) then
sql = "EXEC dbo.spTest '"&quarter&"'"
end if
谢谢
在你的情况下,是的,检查足以防止 SQL 注入。 您提供的检查类型是处理用户输入时所需的检查类型。
因此,根据经验,您永远不应连接用户提供的数据和 SQL 代码,除非您对参数的内容进行了全面检查。
等等!您是在 .Net 还是 SQL 中检查参数?如果在 .Net 中,你就安全了。 如果不安全代码达到 SQL,你就完蛋了。