Skip to content
This repository has been archived by the owner on May 5, 2024. It is now read-only.

新发现的被拒绝的字眼 #123

Open
xuefer opened this issue May 10, 2017 · 4 comments
Open

新发现的被拒绝的字眼 #123

xuefer opened this issue May 10, 2017 · 4 comments

Comments

@xuefer
Copy link
Contributor

xuefer commented May 10, 2017

之前发现 and 1 后面必须空格才会拒绝, 现在多一个情况
and 1即使不空格再and (同样包括 or xor || &&), 也会被拒绝

可以考虑匹配 \band +[0-9].*?\band (后面讨论暂不提 and 以外其他关键字), 缺点是必须循环 反复替换直到无变化
因为可能出现 and 1abc and 1abc and 这样 结果只替换了一个 and 为 _ 而后面两个依然出问题

另一个选择是匹配 \band +[0-9] 不管是否空格, 这样本身允许的 and 1 sdfasdfsdf (后无and) 也一样会替换成 and_, 优点是不必反复替换

@Yinzo
Copy link
Owner

Yinzo commented May 11, 2017

出于功能上的考虑,我们是否应该在第一次匹配到这种疑似sql注入的代码的时候,不做修改,而是提示发送失败,让用户自行修改所发送的内容

@xuefer
Copy link
Contributor Author

xuefer commented May 11, 2017

不是的, 又不是做给用户使用的客户端, 而是做机器人
比如字典, 你能让用户修改返回结果么

而发现这些问题的恰恰就是就是字典功能

@Yinzo
Copy link
Owner

Yinzo commented May 11, 2017

用户会在什么情况下需要发送包含此类注入代码呢,而在需要发送此类注入代码的场景下我们自动对其进行修改是否符合使用场景呢?

@Yinzo
Copy link
Owner

Yinzo commented May 11, 2017

我想用户在正常使用的时候误触发这个注入检测的场景下,我们可以直接把 and 全部替换成 &;

而当用户需要发送注入代码的场景下,我们报错,并提示用户自行解决这个问题,你觉得这样如何?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants