2011-07-25 6 views
4

私のサインアップ/ログイン/ログアウトなど...私のサイトの機能を入力するだけで、私は興味がありました。特定の強さまたは文字セットを満たすパスワードをユーザーに強制する必要がありますか?ユーザーのパスワードを特定の文字セットまたは強度に限定する必要がありますか?

例1、唯一の彼らは、英数字と一部の特殊文字を使用することができ、> 8

例2の長さの英数字のパスワードを使用するように強制的に(すなわち:!@#$%)。

最初の例は明らかにバンキングなどの機密性の高いサイトで実施するのが良いことですが、ユーザーのパスワード文字を制限する正当な理由は考えられません。文字列がSQLインジェクションのためにきれいにされている限り、文字の賢明な権利を使用するのは問題ではありませんか?

EDIT

そしてもちろんのパスワードが

+0

一部の銀行サイトでは、パスワードには番号のみが制限されているため、電話取引のためにダイヤルパッドでパスワードを入力することがあります。しかし、個人的には、私はサイトパスワードジェネレータを使用しているので、文字セットを制限するのは好きではありません。 –

+0

少なくとも、パスワードを送信したユーザーがトップ100のパスワードに対してチェックアウトしているかどうかを確認します。私は特殊文字を強制することをお勧めしますが、それはあなたが確立しているサイトの種類とあなたが必要とするエントリの障壁に依存します。セキュリティは容易ではありませんが、時には必要です。 –

+1

私は安全なハッシュを重視しているのは、あなただけのためではなく、これをまたぐ他のすべての人にとってです。依然として依頼されたときにユーザに実際のパスワードをメールするあまりにも多くの(読んだ: '1>)ウェブサイトがあります。 – SLaks

答えて

3

ハッシュ化されてくださいは、私は私のパスワードに使用することはできませんどのような文字を教えないでください。

ASCII制御文字(\0\0x20)を除き、すべてのUnicodeコードポイントをパスワードでサポートする必要があります。

スペース、引用符、バックスラッシュなどの通常の文字がパスワードで機能することを確認するのは、あなたの責任です。

データベースは実際のパスワードを絶対に参照する必要がないので、パスワードはSQLインジェクションに対して脆弱ではありません。データベースのどこかにアクセスする前に、パスワードをハッシュして塩をかけるべきです。 (使用bcryptの)


最小複雑さの要件は両刃の剣です。ユーザーが覚えていないほど複雑なパスワードが必要な場合、最終的にどこかに書き留めてしまいます。
少なくとも、6文字と、A-Za-z0-9、またはその他の文字のうちの少なくとも2つが必要です。

+0

特殊文字はありませんか? Tsk、tsk! :P –

+0

@ジャレッド:私はそれが最小限だと言った。実際の最小値を設定する前に、関係するリスクとユーザーの洗練を考慮する必要があります。 – SLaks

+0

そして私は言った:P右?私は不平を言う人をたくさん知っており、上記の私のコメントに注意してください。 –

1

SQLインジェクションは本当に重要ではありません。データベースに到達する前にハッシングする必要があります。文字セットを制限する理由はありません。

関連する問題