【问题标题】:How to post-process Input HTML text to prevent WAF/OWASP errors?如何对输入 HTML 文本进行后处理以防止 WAF/OWASP 错误?
【发布时间】:2019-07-15 12:34:42
【问题描述】:

我用:

数据库:SQL Server
服务器:MVC5 / C# / .NET 4.7
防火墙:Cloudflare WAF
客户端:HTML、CSS、Javascriptm JQuery。

我将 Cloudflare WAF 用于我的应用程序,它接受富文本编辑字段中的 HTML 元素。我使用 CKEditor 来启用这些编辑字段。但是,我发现大部分粘贴的 HTML 文本都触发了 WAF OWASP 规则,并且在许多情况下是误报。

可以在客户端对字符串进行 Base-64 编码,但这可能会掩盖来自 WAF 的躲闪字符串。例如,当解码回浏览器时仍会运行。

处理这个问题的好方法是什么?我唯一的其他想法是

a) 只允许限制性的纯文本。
b) 使用某种形式的客户端清理实用程序在上传文本之前对其进行清理,以删除任何狡猾的代码。

我欢迎一些最佳实践建议和任何我可以进一步研究的工具。

【问题讨论】:

    标签: javascript asp.net-mvc-5 cloudflare ckeditor4.x


    【解决方案1】:

    在WAF之前编码数据,在插入数据库之前解码它实际上是绕过WAF,禁用它是一样的。

    现在,在您处理 html 的情况下,您可以对其进行 html_encode。这在显示时不会产生任何影响,但这可能意味着您必须先对其进行解码,然后才能在用户输入中使用它,否则您可能会在提交时遇到嵌套的 html_encoding。

    由于我不确定解决此问题的最佳方法,因此我也在寻找有关如何在不错误触发 WAF 的情况下允许免费用户输入的最佳做法。如果有人发现了什么,请分享。

    【讨论】:

      猜你喜欢
      • 2015-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-24
      • 2018-01-01
      • 1970-01-01
      • 2017-11-01
      • 1970-01-01
      相关资源
      最近更新 更多