如何对输入的HTML文本进行后处理以防止WAF / OWASP错误?

时间:2019-02-21 14:45:00

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

我使用:

DB:SQL Server
伺服器:MVC5 / C#/。NET 4.7
防火墙:Cloudflare WAF
客户端:HTML,CSS,JavaScript JQuery。

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

一个人可以使用Base-64对客户端字符串进行编码,但这可能会掩盖WAF中的躲避字符串。例如,解码回浏览器后仍将运行。

什么是解决此问题的好方法?我仅有的其他想法是

a)仅允许使用纯文本进行限制。
b)在上载文本之前使用某种形式的客户端清理实用工具对文本进行清理,以删除任何躲避代码。

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

1 个答案:

答案 0 :(得分:0)

在WAF之前对数据进行编码,然后在数据库插入实际上绕过WAF之前对其进行解码,将其禁用将完全相同。

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

由于我不确定最好的处理方式,因此我也在寻找有关如何允许免费用户输入而不会错误触发WAF的最佳实践。如果有人找到了,请分享。