當添加用戶輸入到一個網頁,它應該(除非是當然的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