提交存储用SQL代码遭防火墙误判为SQL注入的解决咨询
提交SQL代码的表单被防火墙误判拦截的问题与疑问
- 一年前开发的网站表单功能支持提交仅用于存储的SQL代码,当时可正常上传至数据库;数月未用后,近期复查发现功能失效,经查是公司防火墙因检测到“SQL Injection”拦截了表单提交,防火墙团队坚称未修改规则。
- 疑惑类似StackOverflow这类允许提交代码的网站同样有防火墙防护,却不会触发此类拦截,想了解在页面提交/postback传输代码时,需做什么才能通过防火墙的SQL注入检测。
补充信息
- 表单包含LargeTextArea控件用于输入SQL脚本,通过postback传输至服务器,由服务器端代码负责将脚本存入数据库,流程与StackOverflow的代码提交功能类似。
- 防火墙在客户端浏览器与Web服务器之间直接拦截,导致postback无法完成,服务器从未收到数据,客户端仅收到“connection-reset”错误。
防护思路疑问
一直认为SQL注入的防护是服务器端责任,由开发者确保代码不被滥用;防火墙在服务器代码执行前就拦截检测的做法并不合理,即便服务器端有防注入代码,也会因提前拦截而无法发挥作用,这个想法是否有误?
更新(2023/04/17):最终结论是没有通用解决方案。当负责防火墙的部门设置规则拦截通信时,开发者无法自主解决。唯一“办法”是直接在IIS Server上运行网站代码/页面以完全绕过防火墙,但这只是临时措施,仅适用于有服务器访问权限的管理员,若需对客户端开放则无可行方案。
内容的提问来源于stack exchange,提问作者TekkGuy
相关产品推荐
相关产品推荐

