0

Cakephp 2.X バージョンを使用しています。SSL暗号化によるログインを実装しようとしています。しかし、送信ボタンをクリックすると、投稿データはssl経由ではありません。

セキュリティ コンポーネント ソリューションに従うようにしてください: http://book.cakephp.org/2.0/en/core-libraries/components/security-component.html

ただし、POST リクエストが HTTPS 経由でない場合は、https の get リクエストにリダイレクトされます。うまくログインできないように。

ログインフォームのアクションを手動で変更します

<form action="https://localhost/users/login">

私は働きます。しかし、より良い解決策はありますか?

4

1 に答える 1

0

あなたのソリューションは実際に機能します。Usersコントローラーにこれを追加することにより、セキュリティコンポーネントでSSLを要求することにより、セキュリティのレイヤーを追加できます。

public function beforeFilter() {
    $this->Security->requireSecure('login');
}

blackHoleCallbackさらに、次のようなメソッドを使用して、SSL 以外のリクエストを強制的に SSL リクエストに自動的にリダイレクトすることができます。

public function beforeFilter() {
    $this->Security->blackHoleCallback = 'forceSSL';
    $this->Security->requireSecure();
}

public function forceSSL() {
    $this->redirect('https://' . env('SERVER_NAME') . $this->here);
}

アプリケーション全体で SSL が重要な場合 (機密データを扱っている場合など)、最善の解決策は、Web サーバー (Apache/nginx/使用するものは何でも) ですべての要求に SSL を強制し、それ以外の要求をリダイレクトすることです。 SSLのものをSSLの代替に。

于 2012-10-31T08:58:12.797 に答える