WebAPPやローカルAPPなどで入力内容のチェックは必須事項ですよね。
入力チェックを行う場合、一番気にしなければいけないのはやはりXSSやSQLインジェクション。
それ以外にも多数の攻撃手法がありますけど、こやつらは回避できないと・・・怖いですなぁ。
さて、今まで自分がアホォだったため、チェック手法に抜けがあったりなかったり・・・
やらなければならないチェック内容は
①未入力検出(またはundefined検出)
②入力規則(半角・全角、英字、数字、漢字、ひらがな、カタカナ、記号)
③文字数
があるのかな・・・(足りないかもしれないけど)
以前から気になっていたのは、全角文字のみのテキストフィールドに半角文字の検出、対処はどうすればいいのだろうか?と思っていたら同じ事を考えている人がおりました。
半角文字で特に危険な文字は置換してしまえばいい! のである。
置換例としては、こんな感じ。
☆HTMLエスケープ
” → &quot
> → <
> → >
& → &
☆SQLエスケープ
’ → ’’
¥ → ¥¥
HTMLに関しては、aspなどでサニタイジングする専用関数(aspならHTMLEncode)があるのでそれを活用すればOK!
問題はSQLエスケープかな???
ユーザによって、癖で記号を入力する人がいると思うので、やはり入力チェックは必要ですね。