0

私のphpサーバーに接続し、そこからデータを取得する次のコードがあります。唯一のことは、このWebリクエストからPHPサーバーにユーザー名とパスワードを安全に送信する必要があるということです。webrequestクラスのドキュメントを見ると、credentialsプロパティとpreauthenticateプロパティがあります。これらはネットワーククレデンシャル用であると想定しています(すべてのユーザーはADにいます)。

この投稿リクエストをクレデンシャルで保護することは可能ですか、それともこれは悪い考えですか?SetBasicAuthHeaderも見つけました-これを読んで、役立つかどうかを確認します。ASPXサイトからPHPサイトへのすべてのトラフィックはSSLで行われます

    // variables to store parameter values
    string url = "https://myphpserver.php";

    // creates the post data for the POST request
    string postData = "Username=" + username + "&Password=" + "&UID=" + UniqueRecID;

    // create the POST request
    HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);
    webRequest.Method = "POST";
    webRequest.ContentType = "application/x-www-form-urlencoded";
    webRequest.ContentLength = postData.Length;

    // POST the data
    using (StreamWriter requestWriter2 = new StreamWriter(webRequest.GetRequestStream()))
    {
        requestWriter2.Write(postData);
    }

    //  This actually does the request and gets the response back
    HttpWebResponse resp = (HttpWebResponse)webRequest.GetResponse();

    string responseData = string.Empty;

    using (StreamReader responseReader = new StreamReader(webRequest.GetResponse().GetResponseStream()))
    {
        // dumps the HTML from the response into a string variable
        responseData = responseReader.ReadToEnd();
    }
4

2 に答える 2

0

HTTPSを使用する場合、データはメッセージおよびトランスポートスコープで安全です。これは、誰もそれをデコードしたり、パケットを盗聴したりできないことを意味します。この記事を読むことをお勧めしますHTTPSWiki

于 2013-01-30T17:08:04.033 に答える
0

SetBasicAuthHeaderはHTTP基本アクセス認証用であるため、アプリケーションレベルで認証を処理しているため、ここでは役に立ちません。実際、これはブラウザでページに移動するよりも安全ではありません。SSLを使用しているようですので、リクエストはとにかく暗号化され、心配する必要はありません。

他の理由で心配している場合(理由はわかりませんが)、PHPの終わりを制御できるように思われるので、パスワードを暗号化して追加のPOSTパラメーターを追加するだけで、サーバーがパスワードを復号化できるようになります。

于 2013-01-30T17:08:47.233 に答える