如何通过SSL中的表单提交对CakePHP进行加密



我正在使用cakephp 2.x版本。我尝试使用SSL加密实现登录。但是,当我单击"提交"按钮时,帖子数据不会通过SSL。

尝试遵循安全组件解决方案:http://book.cakephp.org/2.0/en/core-libraries/components/security-component.html

但是,当未通过https邮政请求时,它将重定向到https获取请求。这样我就无法正确登录。

我手动将我的登录表单动作更改为

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

我工作。但是有更好的解决方案吗?

您的解决方案确实可以正常工作,您可以通过在用户控制器中添加此ssl来添加额外的安全层:

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

此外,您可以通过使用blackHoleCallback方法强制任何非SSL请求自动将其重定向到SSL ONE,例如:

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。

最新更新