1

API を使用して安全に接続したいのですが、cURLHTTPS と SSL を使用して接続しています。

今、私はセキュリティの面で何が優れているのか疑問に思っていました.GETまたはを介し​​てデータを送信しますPOST:

$ch = curl_init("http://api.website.com/connect.php?user=xxx&pass=xxxx");
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,  2);

$result = curl_exec($ch);
curl_close($ch);

または

$param['user'] = 'xxxx';
$param['pass'] = 'xxxx';
$ch = curl_init("http://api.website.com/connect.php");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $Parameters);

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,  2);

$result = curl_exec($ch);
curl_close($ch);

POSTまた、データの取得がはるかに遅いことにも気付きました。

4

3 に答える 3

4

ない。「GET パラメータ」は HTTP リクエスト ヘッダーの一部である URL の一部であり、「POST パラメータ」は HTTP リクエスト ボディの一部です。どちらも同じ HTTP リクエストの一部であり、すべてプレーン テキストです。「安全」に違いはありません。

セキュリティ上の理由からではなく、リクエストの種類に応じて意味的に GET または POST を使用してください。

唯一のことは、要求された URL は、要求本文全体よりもログ ファイルに表示される可能性が高いということです。ただし、ログを記録するのはデータの送信先のサービスであるため、大きな違いはありません。

于 2012-11-30T11:04:34.857 に答える
1

いずれも安全ではありませんが、安全な接続 (https) を使用する場合は、本文が暗号化されるため、POST を使用できます。URI を使用してユーザー名を送信するのではなく、パスワードを送信することはお勧めできません。

于 2012-11-30T11:06:13.427 に答える
1

この原因は、HTTPS、GET、および POST を使用しているためです。どちらもトランスポート層で暗号化されるため、互いに同じくらい安全です。

たとえば、HTTPS を使用していない場合、場合によっては POST の方が優れている可能性がありますが、必ずしもより安全であるとは限りません。これは、通常、サーバーがクエリ文字列をログに記録するのに対し、POST データは通常ログに記録されないためです。

于 2012-11-30T11:09:02.423 に答える