今回の特集は
DB Magazine ( マガジン ) 2010年 04月号 [雑誌]
DB Magazine ( マガジン ) 2010年 04月号「4大(Java/ASP.NET/PHP/Ruby)Webプログラミング言語適材適所のアプリ開発言語」でございます。
Linuxのエラーメッセージ50はサーバー運用してて役に立ちそう。
特集の方の適材適所のアプリ開発言語でちょっと見ていて?と思った箇所がSQLインジェクション対策等、サニタイズの箇所。今回はJava、ASP.NET、PHP、Rubyの話がそれぞれ書いてあるわけですがJavaであればフレームワークのStruts2のActiveOvjectに組み込まれているSQLインジェクション対策のお話。PHPですとCakePHPのSanitizeクラスのお話。RubyであればRailsによる文字コード設定後にviewのヘルパーメソッドであるsanitizeメソッドの事が書いてあります。
この4つの中でASP.NETを見ると典型的なSQLインジェクション対策としてJavaScriptでやると書いてあるんですよね。Java、PHP、Rubyがサーバーサイドで処理するのに関してASP.NETの参考例だとクライアントサイドのジャバスクリプトで対策している。
あれ?これっていいんだっけというか理想としては両方でやればいいのでしょうがクライアントサイドでやると穴が出来そうな・・と思ってググったら
★Webアプリケーションにセキュリティホールを作らないための
クロスサイトスクリプティング対策の基本(中編)(ITPro)
>JavaScriptなどによるクライアント側の入力チェックは、ユーザーの
>入力ミスを正す効果については期待できるが、セキュリティの効果
>はまったくないので、クライアント側チェックの有無にかかわらず
>サーバ側でのチェックをすることを忘れてはいけない。
とあります。
なんでASP.NETだけこういう処理で紹介されてるんだろ?標準でサーバーサイドのサニタイズっていうのか危険なコードを無力化する仕組みになってるんだろうか?