我的网站允许网站用户写博客,帖子只允许某些HTML标签的用户输入
class BlogPost
{
[AllowHtml]
public string Content;
}
使用MVC5互联网应用模板创建网站,并使用自举3为它的CSS。所以我决定使用http://jhollingworth.github.io/bootstrap-wysihtml5来处理Rich Text Editor的所有JavaScript部分。
它就像一个魅力。但为了使POST发生,我必须像上面的代码那样添加[AllowHtml]
属性。所以现在我害怕可以进入数据库的危险东西,并将其显示给所有用户。
我试着给喜欢<script>alert("What's up?")</script>
等形式值,它似乎是罚款......文字中显示完全相同的方式(<script>
成为<script>
,但这个转换似乎被我所使用的JavaScript插件来完成。
所以我用小提琴手组成与相同的脚本标签,这一次POST请求,页面实际执行的JavaScript代码。
有什么办法,我可以找出脆弱的输入像<script>
甚至<a href="javascript:some_code">Link</a>
。 ..?
降价不需要HTML输入消毒是错误的。 Markdown允许任意的HTML。你仍然需要消毒。 –