私は自分のCakePHPベースのウェブサイト上の特定のアクションに対してのみSSLを有効にしようとしています。私はrequireSecure()を使ってこれを行い、対応するblackHoleCallback()のhttps://urlにリダイレクトします。CakePHPの特定のアクションに対してSSLを選択的に有効にする
サーバーの負荷を低く抑えるには、SSLを必要とする操作が完了したらhttp://whatever_urlにリダイレクトしてください。
どうすればよいですか?
私は自分のCakePHPベースのウェブサイト上の特定のアクションに対してのみSSLを有効にしようとしています。私はrequireSecure()を使ってこれを行い、対応するblackHoleCallback()のhttps://urlにリダイレクトします。CakePHPの特定のアクションに対してSSLを選択的に有効にする
サーバーの負荷を低く抑えるには、SSLを必要とする操作が完了したらhttp://whatever_urlにリダイレクトしてください。
どうすればよいですか?
これは私が来た1つの解決策です。私はAppController
にbeforeFilter()
に次のコードを追加します。
if (!in_array($this->action, $this->Security->requireSecure) and env('HTTPS'))
$this->_unforceSSL();
関数は次のように定義されます
function _unforceSSL() {
$this->redirect('http://' . $_SERVER['SERVER_NAME'] . $this->here);
}
セキュアなページのための安全な接続を必要とクッキー、通常のクッキーを使用してくださいセキュアでないページの場合こうすることで、誰かが非セキュアなCookieを取得した場合、機密情報をハイジャックすることはできません。
リダイレクトのアプローチで私が気に入らないのは、ユーザーがまだ安全でないURLに行き、その後にリダイレクトされるということです。
私は何かがあなたがSSL /非SSLリンクを渡すものに応じて、返されたと同様のものですHTML->リンク/ URLレベルで行わたかった: http://cakephp.1045679.n5.nabble.com/Re-Login-through-HTTPS-on-CakePHP-td1257438.html だけでなく、安全なコンポーネントに
を使用して私はapp_helperを作成したアプリで :後で編集は、私はちょうど私の仕事は、私は簡単な例を作成しようと、行わなかった(のconfig/core.phpのかbootstrap.phpの中MYAPP_SECURE_URLを定義することを忘れないでください)という簡単に何かをしました。 PHP:
class AppHelper extends Helper {
function url($url = null, $full = false) {
if($url['action'] == 'login' && $url['controller'] == 'users') {
return MYAPP_SECURE_URL.'/users/login';
}
return h(Router::url($url, $full));
}
}