gpt4 book ai didi

php - 使用 html 帮助程序链接方法的 cakephp 安全链接

转载 作者:可可西里 更新时间:2023-11-01 00:53:45 24 4
gpt4 key购买 nike

在 cakephp 中扩展 html->link 函数的最佳方法是什么,这样我就可以告诉它输出安全(https)链接?现在,我已经将自己的 secure_link 函数添加到 app_helpers 这基本上是一个链接功能的副本,但在开头添加了 https。但似乎应该有更好的方法来覆盖 html->link 方法,以便我可以指定一个安全选项。

http://groups.google.com/group/cake-php/browse_thread/thread/e801b31cd3db809a我还在谷歌群组上发起了一个话题,有人建议做类似的事情

$html->link('my account', array('base' => 'https://', 'controller' => 'users')); 

但我无法让它工作。

补充一下,这就是当我有上面的代码时输出的内容。

<a href="/users/index/base:https:/">my account</a>

我认为第 850 行的 cake/libs/router.php 中有一个错误。有一个关键字 'bare',我认为它应该是 'base' 虽然将其更改为 base 似乎并不能解决它。据我所知,它告诉它排除那些传入的键,这样它们就不会作为参数包含在内。但我对为什么它是一个“裸”关键字感到困惑,而我能想到的唯一原因是它是一种类型。

最佳答案

简单地链接到页面的安全版本并不能完全阻止对非安全版本的访问,因此更好的方法可能是为所需的操作实现自动 https 切换。

<?php
class UsersController extends AppController {

var $components = array('Security');

function beforeFilter() {
$this->Security->blackHoleCallback = '_forceSecure';
$this->Security->requireSecure();
/**
* It is very common to require invocation
* of the parent beforeFilter().
* Your usage may have the invocation
* at the top instead of at the bottom.
*/
parent::beforeFilter();
}

function _forceSecure() {
$this->redirect( 'https://'.env('SERVER_NAME').env('REQUEST_URI') );
}
}
?>

使用这种技术,您可以选择需要保护的 Controller /操作,而不必担心在每个链接前添加 https://

关于php - 使用 html 帮助程序链接方法的 cakephp 安全链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1431129/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com