【发布时间】:2009-06-07 18:18:31
【问题描述】:
向网页添加用户输入时,应该(当然,除非是 HTML :) 对其进行编码以帮助防止 XSS 攻击等。像这样:
litForename.Text = HttpUtility.HtmlEncode(MyUser.Forename);
我正在组合一个模板来生成我的业务逻辑层,并且我正在考虑在数据从数据库中出来后,在它到达 UI 代码之前使用它来完成所有编码。这将确保所有内容都经过编码(我显然会排除包含 Xhtml/Xml 字符串的列)。数据访问方法的重载将允许检索没有编码的数据(因此可以对其进行编辑):
// Get a 'User' entity with all the string fields HTML encoded
BLL.Users.GetById(int userId)
// Get a 'User' entity with optional HTML encoding
BLL.Users.GetById(int userId, bool useHtmlEncoding)
这是其他人使用的方法,还是一个愚蠢的想法?有什么好处和坏处?
谢谢。
【问题讨论】:
标签: asp.net encoding n-tier-architecture