ウェブサイト等でユーザー登録が必要なシステムを作成する場合に、注意する点がいくつかあるが、そうした中のひとつとして、ユーザーが設定するパスワードにも気をつけておきたい。
ユーザーが安全性の低いパスワードを設定した場合には、「あらし」や「なりすまし」が発生する危険性がある。
そのような場合には、ウェブサイトのセキュリティ管理にまで追求が及ぶこともあり、ユーザー、ウェブサイトともに被害を被る。
新規ユーザー登録時や、パスワード変更時に、パスワードの強度をチェックするようにしておき、強度が低すぎるパスワードは受け付けないようにしておく方が安全だ。
チェックする項目としては以下のようなことが考えられる。
・数字のみのパスワードは受け付けない。
12345678
111222333
・キーボード配列に沿ったパスワードは受け付けない。
1qaz2wsx ・・・ 1キーと2キーから下に押していったパターン
qazwsx ・・・ qキーとwキーから下に押していったパターン
qwertyuiop ・・・ qキーから右に押していったパターン
741852963 ・・・ テンキーを下方向に押していったパターン
・特定の文字列を含むパスワードは受け付けない。
password
pass
hoge
hogehoge
hogefuga
サイト名等
・繰り返しパターンのパスワードは受け付けない。
abcdabcd
abcabcabc
abcddcba
・ユーザーIDを含むパスワードは受け付けない。
・含まれる文字の種類数が少ないパスワードは受け付けない。
キーボード配列等の文字列パターンは以下のPHPプログラムのように、正順、逆順どちらでも受け付けないようにしておくと良い。
----------
$pattern = "1234567890".
"abcdefghijklmnopqrstuvwxyz".
"qwertyuiopasdfghjklzxcvbnm".
"qazwsxedcrfvtgbyhnujmikolp".
"1qaz2wsx3edc4rfv5tgb6yhn7ujm8ik9ol0p".
"zaqxswcdevfrbgtnhymjukilop".
"zaq1xsw2cde3vfr4bgt5nhy6mju7ki8lo9p0".
"741852963963852741";
if(stristr($pattern, $password) != false)
return false;
if(stristr(strrev($pattern), $password) != false)
return false;
return true;
----------
0 件のコメント:
コメントを投稿