Webページにユーザー入力を追加するときは、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)
これは他の誰かが使用するアプローチですか、それともばかげた考えですか?長所と短所は何ですか?
ありがとう。