将用户输入添加到网页时,它应该(当然,除非它是 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)
这是其他人使用的方法,还是一个愚蠢的想法?优缺点都有什么?
谢谢。