在DB或渲染之前存放之前清理HTML? (在ASP.NET AntiXSS库) [英] Sanitize HTML before storing in the DB or before rendering? (AntiXSS library in ASP.NET)

查看:260
本文介绍了在DB或渲染之前存放之前清理HTML? (在ASP.NET AntiXSS库)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个编辑器,让用户添加存储在数据库中,呈现在网页上的HTML。由于这是不可信的输入,我打算使用 Microsoft.Security.Application.AntiXsSS.GetSafeHtmlFragment 来消毒的HTML。

I have an editor that lets users add HTML that is stored in the database and rendered on a web page. Since this is untrusted input, I plan to use Microsoft.Security.Application.AntiXsSS.GetSafeHtmlFragment to sanitize the HTML.


  • 我应该保存到​​数据库之前或呈现不受信任的输入到网页之前santiize?

  • 有没有包括我的项目中AntiXSS源$ C ​​$ C,而不是仅仅在DLL中的优势? (也许我可以自定义白名单?)

  • 的类文件,我应该去找实际执行的GetSafeHtmlFragment

推荐答案

我不同意的原因有两个选择答案

I disagree with the selected answer for two reasons


  1. 如果您存储连接codeD数据,您有存储前挑一间$ C $铬。如果您存储的东西如HTML,但也想推出另一种格式,例如,作为一个JSON响应,或作为XML文档的一部分,会发生什么?你现在有一个HTML连接codeD格式必须去code,然后连接正确的格式code。

  2. 如果我们发现在连接codeRS中的错误,并推动了一个新的版本是什么?现在,因为你没有在输出点编码的所有旧的数据可能包含的东西,没有正确连接codeD。你可以带$ C $再次C,但你打击它可以是痛苦的正确的过滤双重编码问题。

通常你连接在输出点code和处理任何数据从数据存储在默认情况下为不信任未来 - 毕竟,如果有人设法直接或通过SQL注入编辑你的数据库

Generally you encode at the point of output and treat any data coming from a data store as untrusted by default - after all, what if someone manages to edit your database directly or via SQL injection?

这篇关于在DB或渲染之前存放之前清理HTML? (在ASP.NET AntiXSS库)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆