2017-10-09 14 views
1

おそらくかなり基本的な質問ですが、同様の質問と回答を読んだあと、少し分かりやすくするために少し混乱しています。PHP:SSLへのポスト - 明確化?

保護されていないページがあり、保護されたページに投稿するフォームがある場合、データは一度送信すると暗号化されますか?

例:

https://example.com/do.php」メソッド= 『ポスト』> .....

http://example.com/login.php

はポストがページを確保するという形態を有し

安全な投稿にするには十分ですか、初期ページも安全でなければなりませんか?アヤックスや何もない、ちょうどPHP ...

+0

[HTTPSヘッダーは暗号化されていますか?](https://stackoverflow.com/questions/187655/are-https-headers-encrypted) – Calimero

+0

投稿は安全です –

+2

はい、送信されたデータは暗号化されます。しかし元のページで提供されているデータは保存されないので、ユーザーが入力したデータだけを保護しています。隠しフィールドなどはありません。おそらく、これはユーザーIDのようなものになります。これはユーザーにとって重要であるかもしれないし、重要でないかもしれません。一言で言えば、どこでもSSLを使用するだけです。それ以上の理由はほとんどありません。 – iainn

答えて

1

あなたがSSL経由で投稿するものは、安全ののトランジットです。しかし、あなたの問題がどこにあるのかは分かりません。

安全でないページ(http://example.com/login.php)がある場合、攻撃者はセキュリティがない(暗号化なし、完全性保護なし、何もない)ため、ユーザーがダウンロードしたときにページを変更できます。攻撃者はフォームを変更して、ログイン平文からクレデンシャルを送信することができます。代わりに、攻撃者のサーバーに送信してください。または、例えばキーが押されたときに攻撃者にすべてのキーストロークを送信するような、任意のjavascriptを注入する。攻撃者はプレーンなhttpでダウンロードされたページを完全に制御できます。

なぜ攻撃者は次の投稿の暗号化に気をつけますか?その投稿が行われる前に彼はすでにすべての情報を持っています。

要するに、元のページがプレーンなhttpでダウンロードされた場合、sslを介して後続のリクエストを行うことはほとんどありません - sslリクエスト内のものは既に攻撃者に知られています。 (特殊なケースの中には例外がいくつかあるかもしれませんが、一般的にそうです)。

注目すべき例外は、保護する必要のある要求ではなく、暗号化される応答ですssl交換、私は別のプロトコル、httpsとhttpを別の起源としてカウントするので、javascriptが元の平文ページに注入されても、応答から情報を取得することは困難と考えられます。しかし、これはlogin.phpの想定された機能の場合ではありません。httpsで提供される必要があります。