CakePHP

CakePHPのSSLコンポーネントでSSL対応

2013/05/09

先ごろからCakePHPでサイトを作っています。
WEBサイトで個人情報を扱う際に必要になってくるSSLですが、必要なページとそうでないページが混在するので、自動的に変わるようにできないかとgoogle先生に尋ねた所、SSL Componentなるものを発見。
必要ページのアクション単位で設定でき、必要なページにはhttps、必要ないページにはhttpにリダイレクトしてくれる素敵なコンポーネントです。

DLはこちらから。
plank/secured ? GitHub

sslComponent

では使い方。
DLしたssl.phpはコンポーネントなので、app/controllers/conponents/に設置。

app_controllerを編集。コンポーネントの宣言部分です。

上記の例では、entries_controller の login アクション、
payments_controller の全てのアクション、
mypages_conroller の、indexアクションとeditアクションに対して http でアクセスがあった場合に https://? に転送されます。
逆に、設定されていないアクションに対してアクセスがあった場合は http://? に転送されます。
8行目の autoRedirect をfalseにすると転送を無効にできます。
デフォルトでTRUEなので、設定しなくても構いません。
10行目は、SSLcomponentの他に使用するコンポーネントである Session Component とAuth Componentの宣言です。

GETでのパラメータは引き継がないようなのですが、CakePHPのSSL Componentでhttpとhttpsを切り替える - 降っても晴れても 様のサイトにてGETパラメータも引き継ぐようにするルーチンが公開されていますので、先にダウンロードしたssl.phpを書き換えましょう。

自動的に変わるので、この先は何もしなくてもよさそうです。いやー、便利。
ただ、作成しているローカル環境じゃSSLに対応していなので、SSLページに接続すると真っ白画面となりますので注意。
設定とか判定で振り分けできると思うのですが、誰か教えてください(^_^;)

[tgAmazonItemLookup asin="4798033146" related="1"]

-CakePHP
-, , ,