0

ログイン スクリプト用の Web サービスを作成しています。HTTPSサーバーに保持する必要があるもの。一般に、サーバー側でユーザー名とパスワードを取得しています

if(isset($_REQUEST['login'])){
    $user=mysql_escape_string($_REQUEST['username']);
    $password=hash('sha512',$_REQUEST['password']);
} 

しかし、これは HTTP 接続では問題ありません。

Web サービスに HTTPS 接続を使用したことがないので、知りたいのですが、HTTPS 接続を介してユーザー名とパスワードを渡す方法は他にありますか? そのリクエストからデータを取得する方法。

私のクライアントは、これらのデータをヘッダー情報で次のように送信したいと考えています

Method: POST
Content-Type: application/x-www-form-urlencoded
Content: username=mynames&password=abcabc

そして、ここからデータを取得する必要があります。これについてはわかりません。

4

3 に答える 3

2

HTTPS は効果的に PHP コードに対して透過的です。ブラウザとサーバーによって完全に処理されます。HTTP リクエストとまったく同じように $_REQUEST 変数にアクセスできます。

編集(わずかに変更された質問):

クライアントがユーザー名とパスワードを送信するためのログイン フォームを必要とする場合 (質問に対する変更が示すように)、通常の HTTP 接続と同じようにフォームに入力するだけです。それらにそれぞれ「ユーザー名」と「パスワード」という名前を付け、フォームを投稿するページの $_POST からデータを取得します。前述のように、HTTPS で応答するようにサーバーを設定すると、他のすべてが透過的に処理されます。

于 2012-06-26T06:22:30.577 に答える
1

Piotrが言及しているように、HTTP認証を使用しないでください。

他の誰かが投稿したように:httpsで実行するようにvhostを設定するだけで、準備は完了です。次のようなものを追加して、接続が安全であることを確認できます。

<?php
if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] && isset($_POST) && isset($_POST['login'])) {
    // Your username and password verification here.
}

ただし、$_POSTを使用してください。$ _REQUESTは、「ここで何をしているのかよくわかりません...」という厄介な言い方です。

于 2012-06-26T06:41:40.253 に答える
1

HTTP Auth Basic を使用してリクエストを認証できます。

于 2012-06-26T06:20:23.680 に答える