Symfony: 安全でないハッシャー/エンコーダーを使用する場合は開発者に警告する

作成日 2016年09月28日  ·  3コメント  ·  ソース: symfony/symfony

#20045の議論にいくらか関連して、安全でないエンコーダタイプを使用している開発者に警告することができます。 私はこのようなことを考えています:

if (null !== $this->logger && 'plaintext' === $encoderType) {
    $this->logger->warning('Storing user passwords in plain text is considered a critical security error. Consider configuring a password encoder for the "%s" entity.');
}

if (null !== $this->logger && in_array($encoderType, array('sha512', 'sha384', 'sha256', 'sha1', 'md5'))) {
    $this->logger->warning('Encoding user passwords with "%s" algorithm is considered a bad security practice. Consider using "bcrypt" as the password encoder for the "%s" entity.');
}

このアイデアが気に入った場合、これらの警告メッセージをどこにどのように記録できますか? ありがとう!

Feature Security SecurityBundle

最も参考になるコメント

正直なところ、このようなエンコーダーを使用することを明示的に選択したときに、本番環境のすべてのログにそのような警告が表示されることは望ましくありません。 環境のデバッグフラグに関連付けられている場合はどうでしょうか。ただし、常に有効にすることはできません。

より正確には、本番環境でのこのような機能により、警告ログレベルをまったく使用できなくなります(または少なくとも専用のログ構成がない場合)。 警告が発生するべきではなく、すべての警告を調査する必要があるため、私はそれを沈黙させる必要があります(エラーやクリティカルとすぐに異なるわけではありませんが、それでもそうする必要があります)

全てのコメント3件

正直なところ、このようなエンコーダーを使用することを明示的に選択したときに、本番環境のすべてのログにそのような警告が表示されることは望ましくありません。 環境のデバッグフラグに関連付けられている場合はどうでしょうか。ただし、常に有効にすることはできません。

より正確には、本番環境でのこのような機能により、警告ログレベルをまったく使用できなくなります(または少なくとも専用のログ構成がない場合)。 警告が発生するべきではなく、すべての警告を調査する必要があるため、私はそれを沈黙させる必要があります(エラーやクリティカルとすぐに異なるわけではありませんが、それでもそうする必要があります)

はい、それはdev環境専用です。

私はこれをもはや良い考えとは思わないので、それを閉じます。 私たちの開発者は馬鹿ではありません(したがって、実際のユーザーにプレーンテキストを使用することは決してありません)。悪いハッシャー(sha *)を使用する場合、それはおそらく正当な理由(レガシーアプリなど)であり、とにかく、ドキュメントでうまく説明しています。

このページは役に立ちましたか?
0 / 5 - 0 評価