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