12月21日(月)1、2コマ目

今日、やったこと

「安全なWebサイト」構築(入力チェック)

今日のホワイトボード

入力チェック「どこで、どうやる?」

クライアント側とサーバー側の両方で行うこと。

〇クライアント側

HTML5やJavaScriptを使うと結構いろいろできる。

〇サーバー側

java.lang.Stringクラスだけではちょっとめんどくさい。

「Apache Commons Lang」ライブラリのStringUtilsクラスが便利。

ただし、 ライブラリをダウンロード、プロジェクトに追加する必要あり。

図 入力チェック「どこで、どうやる?」


入力チェック「チェックする目的は?」

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

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

図 入力チェック「チェックポリシー」


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

電話番号やメールアドレス入力用フォームには、入力内容が電話番号やメールアドレスであることをチェックする必要がある。

電話番号やメールアドレスはパターンがありそのパターンは正規表現で表すことができる。

正規表現でアルファベットの小文字は[a-z]で表すことができる。これは文字'a'から'z'をエンコードすると0x61('a')から0x7a('z')と順に並んでいるため、範囲として表現できる。

図 文字とエンコードされた値の関係

図 正規表現の例

図 パスワード要件は「4文字以上の半角英数字・記号」

今日のソースコード

今日作ったコードです。


[例外クラス]AuthenticateExceptionクラス

ユーザー名、パスワードが未登録の場合にスローする検査例外クラス。


[例外クラス]NotFilledExceptionクラス

未入力の項目がある場合にスローする検査例外クラス。


[例外クラス]InvalidPasswordExceptionクラス

入力されたパスワードがパスワード要件を満たしていないときにスローする検査例外クラス。


[ビジネスロジック]Serviceクラス

認証を行うauthenticate()メソッドを作った。


[サーブレット]IndexSrvクラス

入力内容を取得し、認証を行う。

もし検査例外がスローされたら、ログインページにエラーメッセージを表示する。

認証に成功したら2ページ目へ移動。





コメント

このブログの人気の投稿

1月6日(水)1コマ目

11月25日(水)1コマ目

10月14日(水)1コマ目