1月13日(木)3、4コマ目

今日、やったこと

  • バッファオーバー確認テスト
  • 安全なWebアプリ(入力チェック)

今日のホワイトボード

入力チェック「なぜ必要?」

基本的には入力内容が仕様に合うかどうかをチェックする。

入力チェックをする目的は単に「数値入力用フォームに文字が入力されたか」をチェックするだけではなく、セキュリティ的な問題を発生させない目的もある

図 入力チェック「なぜ必要?」

入力チェック「どこで、どうやって」

サーバー側、クライアント側の両方で行うことが望ましい。

〇クライアント側

HTML5の<input>タグや<select>タグにはチェック機能がある。
JavaScriptも使える。ライブラリもある。

〇サーバー側

基本的にString型のデータをチェックすることになる。(getParameter()の戻り値はString)
JDKのjava.lang.Stringクラスのメソッドだけではちょっとめんどくさい。
「Apache Commons Lang」ライブラリのStringUtilsクラスが便利。
ただし、ライブラリをプロジェクトに追加する必要あり(WEB-INF/lib以下にjarファイルをコピー)
図 入力チェック「どこで、どうやって」

入力チェック「パターンマッチング」

電話番号やメールアドレスはパターンマッチングでチェック。
パターンの表現には正規表現を使う。
図 正規表現

ASCII文字コード表を見ると、数字やアルファベットは連続して割り当てられている。そのため、[a-z]の範囲指定でアルファベット小文字を表現できる。

正規表現を使って文字列のパターンマッチングを行うにはStringクラスのmatches()メソッドを利用する。

パスワード要件チェック

パスワード要件は 4文字以上の英数字、記号 。
正規表現で表すと以下のようになる。
図 パスワード要件を正規表現で表す





 

このブログの人気の投稿

1月20日(木)3、4コマ目

1月6日(木)3、4コマ目