2012-01-06 3 views
2

ユーザープロファイル、設定などのフォームを含むサイトの[アカウント]セクションにアクセスしているユーザーをSSLセキュアサーバーにリダイレクトしたいのですが、ユーザーがSSLサーバー上の残りのサイトにアクセスできるようにしたい。テンプレートをどのようにコーディングしたかによって、パスは<a href="/about">として設定されています。アカウントのセクションにあり、Aboutセクションへのリンクをクリックしても、セキュアなhttps:接続のままです。明らかに、http://サーバーにリンクするためのリンクをハードコードすることはできますが、私は選択肢を探しています。特定のフォルダにSSL *のみを追加する

これまでのところ、私は.htaccessに次のようなことがあり、動作していますが、これ以上のリソース集中が必要なのかどうか疑問です。他の '非アカウント'セクションのいずれかへのリンクをハードコードする方が良いか、.htaccess経由でこれをやっているのですか?

また
RewriteEngine On 
RewriteCond %{HTTPS} off 
RewriteCond $1 ^(account) [NC] 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

RewriteCond %{HTTPS} on 
RewriteCond $1 ^(about|terms|products) [NC] 
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

、私はHTTPSを介してアクセスされることから、ホームページを防ぐために望んだ場合://は、どのように私は私の.htaccessファイルにあることを追加して行くのでしょうか?

答えて

2

実際には、このために書き換えルールを使用しないことをお勧めします。

httpリクエストをhttpsリクエストに変換する書き換えルールの問題は、実際にリダイレクトされているということです。これは、httpリクエストがhttpsリクエストに変わるたびに、ブラウザは最初に完全なhttpリクエスト(コンテンツ、クッキー、安全なものを除く)を行い、サーバーからリダイレクトコードを取得してから、 https書き直したURLに再度リクエストしてください。

これは便利ですが、あなたが代わりにhttpsセクションにあることが意図されているサイトのリンクが実際にhttpsを使用していることを確認することでこれに依存している場合、それはそれらのリンクが間違っにリダイレクトされている場合、それは難しい検出するようになりますhttpの変形です。

典型的な結果は以下のとおりです。

  • 混合コンテンツの警告あなたがリンクされhttpを使って何かを埋め込む場合は、後で悪いことである、httpsに自動的かつ透過的になりました。データ漏洩の可能性があります。

代わりに、私は(すなわちhttp://yourhost/accountを返す必要がありますが、自動書き換え/リダイレクトを使用してHTTPS経由で利用可能であることを意味しているのセクションでは、唯一のプレーンなHTTPのバリアントには全く利用できないことを確認していないことを示唆しています404s):これは、あなたが間違ってリンクしたときに気づくことを強要し、セキュリティ上の問題が発生する可能性がある場所を見つけるのを助けます。最終的には同じホスト名を共有していますが、httpサイトとhttpsサイトには2つの異なるURLスペースがあります。この状況では悪いことではありません。

httpからhttpsへの書き換えが本当に便利なのは、ユーザーのサイトへのユーザーのエントリポイントがリダイレクトされていることを確認する場合だけです。

httpsからhttpまでの書き換えは、もちろんこの問題はありません。

+0

答えをありがとう。私は、リダイレクトにあまりにも多くのオーバーヘッドを追加していたのではないかと心配しました。私はちょうど私がリンクをハードコードすることを確かめるでしょう。 – Carlos

関連する問題