如何在ssl for cakephp中通过表单提交对post数据进行加密

如何在ssl for cakephp中通过表单提交对post数据进行加密,cakephp,cakephp-2.1,Cakephp,Cakephp 2.1,我使用的是CakePHP2.X版本。我尝试使用ssl加密实现登录。但当我单击submit按钮时,post数据不通过ssl 尝试遵循安全组件解决方案: 然而,当post请求不是通过HTTPS时,它将被重定向到HTTPS get请求。因此,我无法正确登录 我手动将登录表单操作更改为 <form action="https://localhost/users/login"> 我工作。但是有更好的解决方案吗?您的解决方案确实可行,您可以通过在用户控制器中添加以下内容,通过要求安全组件

我使用的是CakePHP2.X版本。我尝试使用ssl加密实现登录。但当我单击submit按钮时,post数据不通过ssl

尝试遵循安全组件解决方案:

然而,当post请求不是通过HTTPS时,它将被重定向到HTTPS get请求。因此,我无法正确登录

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

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


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

您的解决方案确实可行,您可以通过在用户控制器中添加以下内容,通过要求安全组件使用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替代方案。

谢谢您的回复!我确实遵循了这个解决方案。但我尝试通过发布数据提交表单,而不是获取。此解决方案将重定向我的POST请求以获取…以便我无法正确登录任何想法?好的。也许安全组件只适用于htmlHelper。我是否需要通过htmlHelper创建表单。这个可能有用。让我试试!再次感谢你!