1

固定のユーザー名パスワードと 1 つの可変テキストがあります。

これは最初の方法ですが、安全ではありません:

<form action="http://site.com/foo.php" method="post">
  <input type="hidden" name="username" value="user123" />
  <input type="hidden" name="password" value="pass123" />
<input type="text" name="text" />
<input type="submit" />

</form> 

これは 2 番目の方法です。これを完了してください。

index.html

<form action="foo.php" method="post">
<input type="text" name="text" />
<input type="submit" />
</form> 

foo.php

$username = "user123";
$password = "pass123";

$text = $_POST["text"];

$url  = "http://site.com/foo.php?text=".$text."&password=".$password."&username=".$username;

$urlを安全に投稿するには? (HTTPS なし)

4

2 に答える 2

2

HTTPS なしでは安全ではありません。

パスワードを暗号化して送信すると、ネットワーク中継ノードがアクセスできるようになり、そのまま使用できるようになるためです。

パスワードの監視を防ぐにはMD5しかできませんが、それでもアクセスできます。

しかし、それ自体が暗号化である HTTPS では、クライアントとサーバーだけが知っている公開鍵と秘密鍵があるため、パスワードを破ることはできません。

HTTPS経由でログインできるかもしれません。証明書を購入する必要はありません。自分で簡単に発行して、ホストにセットアップできます。

重要なビジネスには HTTPS を使用します。

于 2012-07-23T06:55:06.760 に答える
1

アップデート:

HTTPS がないと安全にログインできません。
これは非常に安全ではなく、ハッシュを傍受したとしてもユーザーのログインを妨げません。
HTTPS を使用するだけです。


MD5 機能を使用します。

例えば

$url = "http://example.com/foo.php?text=".$text."&password=".md5($password)."&username=".$username;

次に、受信サイト ( http://example.com/foo.php?...) で、受信したパスワードを実際のパスワードのハッシュ (MD5) で確認します。

例:

送信ファイル:

$username = "user123";
$password = "pass123";

$text = $_POST["text"];

$url = "http://example.com/foo.php";
$data = "text=".$text."&password=".md5($password)."&username=".$username;

$handle = curl_init($url);
curl_setopt($handle, CURLOPT_POST, true);
curl_setopt($handle, CURLOPT_POSTFIELDS, $data);
$result = curl_exec($handle);
curl_close($handle);
if($result) {
    // Success
} else {
    // Failed
}

受信ファイル:

$username = $_POST["username"];
$password = $_POST["password"];

// Insert code here to escape the username with mysqli_real_escape_string,
// then retrieve data from database with MySQLi.

if($password == md5($db_password)) {
    // Correct password
} else {
    echo 'Incorrect password.';
}
unset($username, $password, $db_password); // For security, remove variables from memory
于 2012-07-23T06:54:15.407 に答える