6

IDとパスワードをphpファイルに送信するログインフォームがあります。このファイルは、SQLデータベースのデータに対してそのIDとpwをチェックします。送信フォームデータを暗号化して、宛先に到達するまで誰にも表示されないようにするにはどうすればよいですか?ログインフォームコードは

<html>
<head>
<title>
Login page
</title>
</head>
<body>
<form name="login" action="fetchalldata.php" method="post">
Username : <input type="text" name="userid"/>
Password : <input type="password" name="pswrd"/>
<input type="button" name="submit" value="Login"/>
</body>
</html>

データベースでパスワードを事前にハッシュし、ハッシュされたパスワードを送信する方が効果的でしょうか?

4

2 に答える 2

13

SSLが答えです。唯一の答え。

ただし、自家製のソリューションを試してみる必要がある場合は、次のことを検討してください。

  • PHP コードで Javascript に現在のタイム スタンプを提供します。
  • ユーザーが入力したパスワードを取得し、タイムスタンプを追加してから暗号化します。
  • 暗号化されたパスワードをタイムスタンプとともにサーバーに返します。
  • 返されたデータが最新のものであることをサーバーに確認させ、暗号化されたパスワードを独自の計算と照合させます。
  • タイムスタンプが古すぎるか、ログインに使用されている場合は、すでに拒否してください。

これはまだお粗末なアイデアですが、平文のパスワードを送信するほどお粗末ではありません。

SSL を使用します。本当。

于 2012-09-06T00:40:35.230 に答える
4

安全な SSL 接続を使用することが、フォーム データを確実に暗号化する唯一の現実的な方法です。ただし、JavaScript を少し使用して、送信前に何らかの方法でパスワードをエンコードすることもできます。セキュリティはあまり提供されませんが (サイトを表示できる人なら誰でも JavaScript を見てリバース エンジニアリングできるため)、少なくともプレーンテキストのパスワードを送信することは回避できます。

于 2012-09-06T00:32:52.637 に答える