众所周知,XSS攻击很危险,而且很容易发动。像ASP.NET MVC一样,各种框架使对HTML进行编码变得容易:
<%= Html.Encode("string"); %>
但是,当您的客户要求他们能够直接从Microsoft Word文档上载其内容时,会发生什么情况?
这是场景:人们可以将Microsoft Word中的内容复制并粘贴到WYSIWYG编辑器(在本例中为tinyMCE)中,然后将该信息发布到网页上。
该网站是公开的,但是只有该组织的成员才能访问该网页上的信息。
如何以安全的方式处理这些要求?目前,还没有检查客户发布的内容(因为只有“受信任的”用户可以发布),但是我对此并不特别满意,如果帐户被黑客入侵,我想将其进一步锁定。
我知道,满足这些要求的唯一概念性方法是将HTML标签列入白名单,并让它们通过。还有另一种方法吗?如果不是,有什么安全的方法可以让用户以任何形式将输入存储在数据库中,而只显示正确编码并清除不良标签的输入?