ホームページ > バックエンド開発 > PHPチュートリアル > 複雑なパスワードを再度設定することを強制しないでください

複雑なパスワードを再度設定することを強制しないでください

WBOY
リリース: 2016-06-23 13:17:58
オリジナル
1462 人が閲覧しました

私が最近読んだブログ投稿 (Bole Online 注: この記事の最後を参照してください) は、より複雑なパスワードの使用を強制することについてです。原作者はセキュリティ強化のためと言っていますが、私はこれらの技術は最善の方法ではなく、「実用的」というより面倒だと思います。

質問

より安全なパスワードを実装したいということですね、わかりました。でも

あなたのくだらないパスワード ルールの使用を私に強制するのはやめてください:(

この記事をそれほど深刻なものにしないでください。それが私がやろうとしていることです。私が自分の記事を書こうと思ったのは、その記事のおかげです。作成者に向けたものではありません。とにかく、私はこれらのパスワード ルールをサイトやサーバーで使用しているすべての人に言います。

このようなルールでは、パスワード Abcd1234 は有効性チェックに合格しますが、mu-icac-of-jaz-doad は通過しません

おそらく i%Mk3c4n のようなランダムな文字のパスワードを使用してもらいたいのはわかりますが、あなたのルールは実際にはそのように機能しません。これらのパスワードは迷惑であり、十分な長さがない限り安全ではありません。特にパスワード マネージャーをインストールしていない場合は、入力するのがさらに面倒になります。電話とコンピューターです。

第二に、安全でないパスワードを使用している人は依然として愚かなパスワードを使用しています (Loverboy1964 など)。だから、あなたは誰も助けていないのです

あなたの恣意的なルールの使用を私に強制したり、他の人がそうするように奨励したりするのはやめてください。私のパスワードは

ブロガーが使用を許可されている 2 つのパスワード:

以下は、ブロガーが使用を許可されていない 2 つのパスワードです :

解決策

私わかりませんが、このリストにあるパスワードよりも安全なものを本当に実装したい場合は、検証ルールに不必要に複雑なパターンを強制しないでください。ユーザーが引き続き使用する元のパスワードのほとんどは、大文字を追加するだけです。文字、または 2 つまたは 3 つの数字

(注 1: ここで言及されているパスワードのリストはすべて 123456、password、qwerty などです。「愚かなパスワード」)

代わりに、3 つのパスワードを許可しないようにして、最低限必要なパスワードの長さを増やしてみてはいかがでしょうか。数字以上の数字シーケンス /[0-9]{3,}/?

その後は先に進むことができます。少しずつステップを踏み、同じ文字を 1 つの行 (隣接する) で 2 回以上繰り返さないようにしてください。 )1{2,}/ をそれほど問題なく実行できます

これにより、ほとんどの混乱が解消されます。また、ユーザー パスワードの選択を不必要に制限しないでください。

UPDATE

さらに良いことに、これらのルールをすべて忘れて、パスワード強度の最小要件

reddit ユーザー sarciszewski からのアドバイス:

なぜこれほど多くの人が Zxcvbn を使用しないのか理解できません

https://github.com/dropbox/zxcvbn

    https:// github.com/bjeavons/zxcvbn-php
  • パスワード強度推定ツールが十分に優れている限り、パスワードに何が含まれているかは特に気にしません。検出用に 2000 個の「A」を使用して ASCII ペニスを形成したい場合、zxcvbn は、パスワードに小文字が含まれていない場合は使用できないことを通知して、ユーザーを失望させることはありません。
関連漫画

Password Strength (xkcd)

『Recommendations for Enforcing Complex Passwords in Laravel』(英語原文)


シンプルでエレガントなLaravelドキュメントをベースに、より強力なパスワードを強化する方法を簡単に紹介しますユーザーフレンドリーな良いパスワード。認証の標準文書を通じて、登録フォームを使用して説明します。 LaravelのAuthControllerに少し変更を加えました。

(Bole オンライン補足: Laravel は PHP Web 開発フレームワークです。)

'password' => [    'required',    'confirmed',    'min:8',    'regex:/^(?=S*[a-z])(?=S*[A-Z])(?=S*[d])S*$/',];
ログイン後にコピー

http://php.net/manual/en/function.preg-match.php のドキュメントと Laravel の正規表現ルールを使用してください。文書内で、これらの文字をチェックする式を設定でき、失敗した場合のカスタム メッセージも設定できます。

これらの小さな手順により、ユーザーがエラー メッセージを表示しながらより適切なパスワードを設定できるようになります。

著者について: LynnShaw

Weibo: @小晓晓宁 個人ホームページ · 私の記事 · 25

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート