nmtysh.log

Tech系のネタや日々の独り言などを書いています。

パスワード設定の罠

セキュリティを意識して、複雑かつ長いパスワードを設定するように心がけています。
(覚えきれないのでパスワード管理ツール頼みではありますが)

あとこの手のツールはパスワード生成機能がついているので、その機能で強度の高いパスワードの生成を行っています。
過去にパスワードの設定で嵌ったことがあるので自分へのメモとして書いておきます。

許容できる文字列長を超えたら容赦なくカット

サイトによっては利用できる最大長を表記していない場合があります。
その場合に大抵は長過ぎますとエラーが出るのですが、エラーが出ないサイトもあります。

エラーが出ない場合、裏側はどうなっているのか。
なんと最大長で切り詰めている場合があるのです。

切り詰められても、エラーが表示されないので気が付きません。
気がつくのは次回ログインする時です。

何故かログインできなくて非常に困りました(実体験)
パスワードリセット機能で事なきを得ましたが、エラーにせず切り詰めるのは勘弁して欲しいです。

前後の半角空白は容赦なくカット

数字、大文字英数字、小文字英数字以外にも記号を許可しているサイトもあります。
その中に「 」(半角スペース)を許可するサイトもあります。

パスワード生成ツールで生成する場合、生成したパスワードの先頭や末尾に半角スペースが来る場合があるのですが、これがクセモノです。
サイト側の入力値検証で、""(空文字)判定などの際に文字列前後の空白を取り除く場合があるのです。

空白が取り除かれると何が起こるのか。
そうです。設定したパスワードが通りません。

悲しいですがこの時もパスワードリセットで対応しました。
そのサイトはセキュリティのため、パスワードの再変更(リセットを含む)ができる間隔が制限されていました。
制限されている間はパスワードを変更できず利用できませんでした(実体験)

まとめ

利用者の目線から考えても

  • 設定可能な文字数の下限と上限
  • 設定可能な文字種
    • 記号を設定可能な場合は、設定可能な記号を列挙

これぐらいは書いていて欲しいです。
頑張って(生成や)入力をしてフォームを送信したあとに、エラーというのは悲しいですし、
再度入力をしなければならないので面倒になります。

あと極端に文字列の最大長が短いサイトがあるのはなぜなんでしょう。
ハッシュ関数によりダイジェスト化しているのであれば、入力文字数の長さは(最小はともかく)気にならないはずなのですが……
まさか、入力値をそのまま保存しているなんてことはありませんよね……?