我的网站允许网站用户撰写博客文章
class BlogPost
{
[AllowHtml]
public string Content;
}
该站点是使用 MVC5 Internet 应用程序模板创建的,并使用 bootstrap 3 作为它的 CSS。所以我决定使用http://jhollingworth.github.io/bootstrap-wysihtml5来处理富文本编辑器的所有 JavaScript 部分。
它就像一个魅力。但是为了使 POST 发生,我必须[AllowHtml]
像上面的代码一样添加属性。所以现在我害怕危险的东西可以进入数据库并依次显示给所有用户。
我尝试<script>alert("What's up?")</script>
在表单中给出诸如 etc 之类的值,它似乎很好......文本的显示方式完全相同(<script>
成为<script>
。但这种转换似乎是由我使用的 javascript 插件完成的。
所以我用 fiddler 用相同的脚本标签编写了一个 POST 请求,这一次,页面实际上执行了 JavaScript 代码。
有什么办法可以找出易受攻击的输入<script>
,甚至<a href="javascript:some_code">Link</a>
...?