私は既にモーダルログインダイアログを作成しています。問題は、HTTP経由で元のページが読み込まれても、https経由でサーバーに資格情報を引き渡したいということです。もちろん、私はできる限り作業コードの書き換えを少ししかしたくありません。httpsでデータを送信するJQueryモーダルダイアログフォーム
ログインデータがPOST AJAXリクエストを介してサーバーに渡されるため、私の場合はJSONPを使用できません。
アイデア?
私は既にモーダルログインダイアログを作成しています。問題は、HTTP経由で元のページが読み込まれても、https経由でサーバーに資格情報を引き渡したいということです。もちろん、私はできる限り作業コードの書き換えを少ししかしたくありません。httpsでデータを送信するJQueryモーダルダイアログフォーム
ログインデータがPOST AJAXリクエストを介してサーバーに渡されるため、私の場合はJSONPを使用できません。
アイデア?
同じ起源ポリシーはこれを不可能にします(少なくともクロスドメインXHRをサポートしていないブラウザではこれで十分です)。
(ホスト文書はHTTP経由で提供していますので、それはSSLを介して輸送された場合でも、データが脆弱になるだろうこれは、ワイヤ上で傍受や改ざんされることがあります)
好奇心をそそらえて、セキュリティで保護されたページを開始するのはなぜですか?なぜ似たような問題が戻ってきたのか、今はページに当たった直後にユーザーにhttps(リダイレクト経由)を強制します。
Same-origin policyに合わせてご注意ください保護されていない資格情報を保護されたページに投稿しようとしているので、不可能でなければなりません。また、ログインランディングページがSSLを使用していない場合、攻撃者はユーザーに送信されるときにページを変更し、フォーム提出場所を変更するか、入力時にユーザー名とパスワードを盗むJavaScriptを挿入する可能性があります。したがって、ログインのランディングページではSSLを使用する必要があります。
説明するために、次の表は、URL「http://www.example.com/dir/page.html」に対する検査の典型的な結果の概要を示しています。
Compared URL Outcome Reason
http://www.example.com/dir/page2.html Success Same protocol and host
http://www.example.com/dir2/other.html Success Same protocol and host
http://u:[email protected]/x/o.html Success Same protocol and host
http://www.example.com:81/dir/other.html Failure Same protocol and host but different port
https://www.example.com/dir/other.html Failure Different protocol
http://en.example.com/dir/other.html Failure Different host
http://example.com/dir/other.html Failure Different host (exact match required)
http://v2.www.example.com/dir/other.html Failure Different host (exact match required)
http://www.example.com:80/dir/other.html Depends Port explicit. Depends on implementation in browser.
他のブラウザとは異なり、Internet Explorerは、その場所にセキュリティゾーンを使用して、ポートを発信元の計算に含めません。
同一生成元ポリシーを緩和する方法
いくつかの状況では同一生成元ポリシーは、複数のサブドメインを使用する大規模なWebサイトの問題を装った、あまりにも限定的です。あなたが本当にそれをどうするか、もしそうであれば
:ここにそれを緩和するための4つの技術があります可能ですが、ウェブサイトのpublic key certificateがverになっていることを確認する必要がありますしたがって、certification authorityによって妥当である。
そうでない場合は、Webブラウザのホワイトリストに証明書を追加しようとする場合があります。または、別のWebブラウザで試してみてください。
替わりに、ログインフォームが表示されている場合にユーザーが常に安全なページに表示されていることを確認したり、ログインフォームのモーダルフォームを無効にしたりすることができます。
その他の回避策には、セキュリティで保護されていないトラフィックをsslに転送することによる書き換えルールの追加などがあります。
# Various rewrite rules.
<IfModule mod_rewrite.c>
RewriteEngine on
# Force <front> to ssl for modal use of secure log in module.
RewriteRule http://www.example.net/^$ https://www.example.net [R=301,L]
も参照してください: