有选择地为 CakePHP 中的某些操作启用 SSL
我正在尝试仅对基于 CakePHP 的网站上的某些操作启用 SSL。 我使用 requireSecure() 并重定向到相应的 blackHoleCallback() 中的 https://url 来执行此操作。
为了降低服务器负载,一旦用户完成以下操作,我想重定向回 http://whatever_url需要 SSL。
我该怎么做呢?
I'm trying to enable SSL for only certain actions on my CakePHP based website. I'm doing this using requireSecure() and redirecting to https://url in the corresponding blackHoleCallback().
To keep the server load down, I'd like to redirect back to http://whatever_url once the user is done with the action that requires SSL.
How do I do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这是我想到的一种解决方案。 我将以下代码片段添加到
AppController
中的beforeFilter()
中:该函数定义为:
So this is one solution I've come upon. I add the following snippet to
beforeFilter()
inAppController
:The function is defined as:
确保对安全页面使用需要安全连接的 cookie,对非安全页面使用普通 cookie。 这样,如果有人捕获了非安全 cookie,他们将无法劫持任何敏感信息。
Make sure to use a cookie that requires a secure connection for the secure pages, and a normal cookie for non secure pages. This way, if someone captures the non secure cookie, they won't be able to hijack any sensitive information.
我不喜欢重定向方法的是,用户仍然会转到不安全的网址,并且只有在此之后他才会被重定向。
我想要在 html->link/url 级别完成一些操作,其中根据您传递的内容返回 ssl/非 ssl 链接,类似于:
http://cakephp.1045679.n5 .nabble.com/通过-HTTPS-on-CakePHP-td1257438.html重新登录
而且还使用安全组件
稍后编辑,我做了一些更简单的事情,只是完成了我的工作,我尝试创建一个简单的示例(不要忘记在 config/core.php 或 bootstrap 中定义 MYAPP_SECURE_URL .php):
在应用程序中我创建了app_helper.php:
what I don't like with the redirect approach is that the user still goes to the unsecure url and only after this he is redirected.
I wanted something done at the html->link/url level where depending on what you pass a ssl/non-ssl link is returned, something similar with:
http://cakephp.1045679.n5.nabble.com/Re-Login-through-HTTPS-on-CakePHP-td1257438.html
but also using the secure component
later edit, I did something easier that just did my job done, I try to create a simple example (don't forget to define MYAPP_SECURE_URL in config/core.php or bootstrap.php):
in app I created app_helper.php: