ユーザがパスワードとして入力できる文字は何ですか?PHPログインパスワードの質問
答えて
好きな文字。あなたのパスワードがあまりにも安全であることを伝えることは、単に迷惑です。
理論的には、にはが必要であるという制限はありません。しかし、プログラミングの容易さの観点からは、私は'
が許可されてはならないことを知っています(mysql注入などですが、コードが正しく書かれていれば、それは問題ではありません)。
必要なセキュリティの程度によって異なります。私は大文字と小文字、数字、大多数のシンボル(すべての最上行のシンボルに加えて疑問符、カンマ、ピリオド、そしておそらくいくつかの他のシンボル)を言います。
可能な限り無制限である必要があります。人々が好きな文字を使うようにしましょう。
好きなキャラクターと好きな長さです(PHPのポストの制限を超えている場合を除く)。優れたパスワードシステムでは、ハッシュだけを保存し、ログインするとハッシュも送信します。それは問題ではありません。
パスワードを保存しても、データベースに格納されている文字列(mysql_real_escape_string
)をエスケープする必要があります。したがって、任意の文字を許可する必要があります。実際のパスワードを保存する場合、長さをフィールドサイズに制限することができます。この場合、少なくとも200文字にする必要があります。
私はあなたが使用している文字セットを判断し、その文字セットに限定する必要があると思います。 UTF8を使用していない場合、たとえばISO-8859-1の場合、マルチバイト文字の書き込みは望ましくありません。
標準のen-USキーバードで利用できるものはすべて問題ありません。
パスワードに任意の文字を挿入することができます。 暗号化を使用しない場合は、MySQLインジェクションを防ぐために入力を検証するようにしてください。少なくともMD5()またはSHA1()を使用してパスワードを暗号化することをお勧めします。
私は彼らが望むすべての文字を入力する必要があると思います。しかし、パスワードの安全性を高めるために、パスワードの長さを適切に設定する必要があります。また、私はあなたができれば連合のログインを使用するように助言する:
- openid:lightopenidは本当に簡単なライブラリです。
- Facebookは
- さえずりを接続する単一
サインインこれらの選択肢は道securerあることを行っています。
- 1. PHP XML質問
- 2. HTML/PHP質問
- 3. PHP MVC質問
- 4. php str_replace質問
- 5. 質問(PHP)
- 6. PHP __Constructor&__Destructor質問
- 7. PHP定数質問
- 8. PHP関数質問
もちろん、md5、sha1などの魔法でハッシュしてください。実際に唯一の理由は、データベースに保存された平文パスワードを浄化しなかった場合、SQLインジェクションから身を守ることだからです。私は本当に彼らが私のパスワード平文を保存していないことを願っています。だから、彼らは安全でないか、私に不安を強いるかのいずれかです。 –