当添加用户输入到一个网页,它应该(除非是当然的HTML :)进行编码,以帮助防止XSS攻击等。像这样:添加HTML编码到业务层
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)
这是一种办法,其他任何人使用,或者是一个愚蠢的想法?优缺点都有什么?
谢谢。
我同意 - 感谢您的理智检查。 – Nick 2009-06-07 20:43:57