我正在使用cakephp 2.X版本。我尝试使用ssl加密实现登录。但是当我点击提交按钮时,帖子数据不会通过ssl。
尝试遵循安全组件解决方案: http://book.cakephp.org/2.0/en/core-libraries/components/security-component.html
但是,如果发布请求不是通过HTTPS,则会重定向到https get请求。这样我就无法正常登录。
我手动将登录表单操作更改为
<form action="https://localhost/users/login">
我工作。但有没有更好的解决方案?
答案 0 :(得分:0)
您的解决方案确实有效,您可以通过在用户控制器中添加SSL来使用安全组件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。