web-dev-qa-db-ja.com

Healthcare.govがパスワードから一部の特殊文字を除外するのはなぜですか?

このサイトでは、次の文字は許可されていません:= ?<> ( ) ‘ " / \ &

また、パスワードの最大長は20文字に制限されています。

これにより、プレーンテキストで保存されている可能性があり、入力が適切にサニタイズされていないのではないかと疑われます。この種の制限には他に理由がありますか?

これは パスワードで特殊文字を許可しない理由 の重複ではないと思います。これは(私の知る限り)古い金融システムと統合する必要のない、かなり新しいWebサイトだからです。

1
user505255

パスワードをハッシュ化して保存していると仮定すると、パスワードフィールドに含めることができるコンテンツの種類を制限する正当な理由は、単純な入力のサニタイズです。

開発者が特別な例外を作らない限り、どこにでも適用される一連のルールが存在する可能性があります。そうすれば、プログラマーは特定のコンポーネントの「安全チェックをオンにする」ことを覚えておく必要がありません。他の方法で行う正当な理由がある場合を除いて、すべてがサニタイズされます。

除外される文字は、さまざまなストライプのインジェクション攻撃に関連付けられることが多く、パスワードでそれらの文字をallowする必要がある理由はなく、セキュリティチェックを無効にする理由がありません。デフォルトポリシーが適用されます。

なぜ20文字?一部のコンポーネントライブラリでは、おそらくこれがデフォルトでした。

0
tylerl