2011-07-26 16 views
1

私はPOSTを経由して保存することが私のサーバーまで、次の送信する必要があります:私は、送信する前にこれを暗号化する必要がありZZZZZiPhoneアプリ - > PHP - > MySQLからユーザーのパスワードを保護する最善の方法は何ですか?

=

&ユーザ名= XXXX &パスワードを?またはHTTPS(SSL)経由でPHPページに送信するだけですか?

PHPページで、暗号化を行ってMySQLサーバーに保存する必要がありますか?

これを行うには、最高のiPhoneアプリ - > PHP - > MySQLの方法について少し助けが必要です。

+2

'HTTPS' /' SSL'は問題ありません。確かめたい場合は、証明書を確認してください。 – Wrikken

+0

あなたが以前の質問にもっと答えを受け入れると、より良い回答率が得られます.15%はかなり低いです... – MCannon

答えて

1

iPhoneアプリとPHP間の通信にHTTPSを使用して送信しても問題ありません。できるだけ早く、良いパスワードハッシュアルゴリズムを使用してパスワードをハッシュする必要があります。

あなたは良いパスワードハッシュ慣行に慣れていない場合は、これは便利かもしれません:他の人が言っているよう How do you use bcrypt for hashing passwords in PHP?

0

md5()を使用してパスワードを暗号化するか、独自の暗号化/復号化機能を作成することができます。あなたは、単に送信中にデータを保護したい場合はここで

は、クライアント側からは一例

ある

$password = md5('password'); 

データベースに確認する

//security check 
$user = mysql_real_escape_string($_POST['username']); 

mysql_query("SELECT user_name, email FROM users WHERE username='".$user."' AND MD5(password)='".$password."'"); 
+2

Please!これは安全ではありません。あなたの例では、パスワードやmd5ハッシュを盗むのかどうかは違いはありません。 HTTPSを使用すれば問題ありません! – middus

+0

また、 '$ password'をエスケープするのを忘れました(エスケープはセキュリティチェックではありません、btw)。この解決策はありません。 – middus

0

HTTPS/SSL十分なはずです。明らかに、暗号化された値をMySQLデータベースに保存する必要があるかもしれません。この場合は、SQLクエリを実行する前に資格情報も暗号化する必要があります。

0

HTTPSは、エンルートデータを保護するのに十分であるべきです。サーバー側では、パスワードを任意の可逆形式で保存しないでください(何らかの理由で平文が必要な場合を除いて、第三者に渡すなど)。暗号化された暗号化ハッシュを使用することをお勧めします。

基本的には、ユーザーがパスワードを設定すると、新しいランダムな文字列()が生成され、次にパスワードがhash(salt + password)の結果として保存されます。このハッシュは強力な暗号化機能です(現在はSHA-256などを推奨します)。このようにして、サーバーが侵害された場合でも、ユーザーの平文パスワードは取得できません。

ユーザーがパスワードを送信すると、ハッシュ(salt + password)を再度計算し、その結果がデータベースに格納されているものと一致するかどうかを確認するだけです。