当前位置:  开发笔记 > 前端 > 正文

用于SQL WHERE子句的正则表达式

如何解决《用于SQLWHERE子句的正则表达式》经验,为你挑选了2个好方法。

对于Web应用程序,我想构建一个WHERE子句并将其提交给服务器.在那里,我将它附加到查询.该条款将是类似的

LASTNAME LIKE 'Pep%' AND (DOB BETWEEN '19600101' AND '19601231 OR SALARY<35000)

在将该子句提交给SQL Server之前,是否可以提出一个正则表达式来验证该子句?

(是的,当然,我想要ORDER子句的正则表达式)



1> angry person..:

这是一个非常糟糕的主意.我建议你构建一个过滤系统,用户可以在表单中选择各种选项,然后构建正确的sql服务器端,而不是打开自己的各种注入攻击.

作为可能出错的一个例子,考虑一下:

LASTNAME LIKE 'Pep%'--
DROP TABLE People
--

这将在您的SQL中注入DROP TABLE命令,这将很难检测到.您当然可以删除 - 和/*之类的内容,但我保证如果您这样做,有人可以找到方法.



2> Jimmy..:

你没有建立

LASTNAME LIKE 'Pep%' AND (DOB BETWEEN '19600101' AND '19601231 OR SALARY<35000)

你建立

LASTNAME LIKE @LastName AND (DOB BETWEEN @dobStart AND @dobEnd OR SALARY<@MaxSalary)

并传递这些家伙作为参数.没有正则表达式,没有大惊小怪.

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有