MVCの基本的なアプリケーション開発方法などを紹介してきました。今回はセキュリティ対策と、クライアントサイドスクリプトの活用のコツについて紹介します。MVC固有のセキュリティ対策や、スクリプトの利用についても基本的に意識する部分は少ないです。フレームワークとしてどのような対策が行われているか気になる方も多いかと思います。Toolkit)を利用する際のコツを紹介します。』を参考に行ってください。Centerからダウンロードできます。インストールはウィザードに従って進めるだけです。Toolkitはサーバーコントロールを利用しません。Toolkitダウンロードページで提供されていますのでダウンロードしておいてください。最新版としてリリースされている、30930では本稿のサンプルが動作しませんのでご注意ください。今回触れるのは、以下の部分です。MVCそのものについては過去の内容も併せて参照してください。MVCはWeb技術ですので、当然フレームワーク側で多くのセキュリティ対策が取られています。ASP.NETが根底にある技術でもあるので基本的にASP.NETのセキュリティ対策が扱えます。MVCにおけるセキュリティ対策について紹介します。MVCのXSS(クロスサイトスクリプティング)対策です。XSSと言えば、クライアントサイドから悪意あるスクリプトを混入させてユーザーを意図しないページへ誘導したり、セッションハイジャックりする攻撃手法として知られています。>」が書かれている値がサーバーに送られそうな時には、HttpRequestValidationException例外が発生します(図1)。エラー発生時の画面これは、XSSが発生しそうなデータをサーバー側に送り込ませないように事前検証する機能です。非常に簡単なXSS対策です。実際は意図的にサーバーに送らせたい場合もあります。ブログなどで使われているRichTextBoxのHtml文字列などの場合です。意図的に送りたい場合でもExceptionが発生してしまいます。MVCでは回避できません。MVCではコントローラ側でValidateInput属性をfalseに設定することで例外を回避できます。(中略)}ValidateInput属性は、他の属性同様にコントローラクラス自身、または個別のアクションメソッドに設定できます。この場合データのチェックはコントローラ側でしっかりと行う必要があります。認証ユーザーのみにしか適用しないのはもちろん、他にもデータの検証を行う方法などを検討しなくてはいけません。Html文字列の検証を行う例として、携帯サイトで使われているホワイトリスト方式を使うことができます。View();}最初にサーバー側で、HTMLEncodeを行い、許可するタグだけ置換していく方法です。上記コードでは、Server.HtmlEncodeメソッドでパラメタの値をすべてエンコードし、Html文字列として許可しているタグだけをReplaceメソッドで置換していきます。ホワイトリスト形式では、許可するタグの分の記述が必要になるので、コードが冗長になりがちです。そのような場合は、正規表現を使うことも検討しましょう。NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。