4Marks
攻撃技術の進歩に備えるためにこそ、原理からの対策を
原理から正しく学ぶということは、HTMLなりJavaScriptの文法をしっかり学ぶことでもある。またエスケープを正しく行わないと、セキュリティ上の問題以外に、表示がおかしくなるなどの不具合が生じる。これはプログラマとして必須の知識なのだ。
セキュリティ以前に「正しい結果を返す」事が大前提。逆に正しさを理解すればセキュリティの基本的な概念も理解できる。
大垣さんのブログには、「出力時に過剰とも言えるエスケープ処理」とあるが、多くの文字をエスケープすれは安全になるというものでもない。HTML上の場所に応じた適切なエスケープが必要だ
出力先のフォーマットに即していないとエスケープそのものの意味がない。
インジェクション系脆弱性の根本原因はリテラル(定数)が枠をはみ出し、命令として解釈されることだ。
ここが理解できないと XSS を理解するのは難しい。

セキュリティの話だけでなく。だいたいにおいてあてはまるなぁ