我们知道,在应用中从外界接受输入拼接正则表达式,很容易被 DoS 攻击。即使不考虑 DoS 攻击的问题,如果输入含有特殊字符,也会造成正则表达式的语义出错。
一般在根据外界输入进行搜索是,都是使用 startsWith
, contains
这些不使用正则表达式,直接做字符串查找的方法。但是有些情况下是不得不使用正则的,例如,在 mongodb 里按字符串前缀检索数据,就必须用正则。
在这样的情况下,有没有什么比较通用、可靠的方法来防止「正则表达式注入」?
1
oott123 2016-11-05 00:23:50 +08:00 via Android
语义问题就转义呗
转义了的话,好好写正则应该不会被 DoS 了吧? |
2
langmoe 2016-11-05 00:57:08 +08:00 1
|
3
binux 2016-11-05 01:14:51 +08:00
正则也有转义的啊
|
4
terence4444 2016-11-05 01:52:22 +08:00 via iPad
/E /Q 可以转义吧
|