gpt4 book ai didi

php - 内部重定向是否对客户端 php 可见

转载 作者:可可西里 更新时间:2023-11-01 16:28:26 27 4
gpt4 key购买 nike

考虑用户打开一个页面(主要是提交表单)page1.php,然后在该文件中,经过一些操作后,有一个重定向到页面page_internal.php,其中检查了一些条件,最后重定向到 page2.phppage3.php。因此,用户最初请求页面 page1.php 并最终登陆 page2.phppage3.php,他并没有真正看到page_internal.php,但是这种重定向是否对客户端可见?例如,假设我使用不安全的 http 协议(protocol),如果在我的 page1.php 文件中我重定向到

page_internal.php?q=some_sensitive_data

some_sensitive_data 是否对客户端可见(被访问),或者该内部请求“发生在服务器端”并且仅将最终页面发送到浏览器。对于第 1、2 和 3 页,是否安全并不重要,重要的是一个内部重定向。

更新

好吧,让我们暂时忘记提交,简单地

  • 1) 用户在浏览器中打开 page1.php。
  • 2) 在该页面的代码中我重定向到 page_internal.php?q=some_sensitive_data
  • 3) 在page_internal.php ,检查我将用户重定向到的一些条件第 3 页或第 4 页。
  • 4) 全部通过http完成,qsn:客户端能不能看到some_sensitive_data

更新

qsn2:如何在cakephp中不使用session来处理这部分

谢谢

最佳答案

如果您通过 header('Location: .../page_internal.php') 重定向,那么您的重定向将对客户端可见。根据您的服务器的速度,url 只会在 url 中显示很短的时间。

但是任何浏览历史记录,即 Chrome 开发工具将正常记录对 page_internal.php 的调用。


一些框架允许内部处理请求,通过内部转发到请求处理程序而不是强制客户端发出另一个请求:

使用 CakePHP 中的调度程序代替使用内部请求:

$dispatcher = new Dispatcher(); 
$request = new CakeRequest('/pages/internal');
$request->data = array('q' => 'some_sensitive_data');
$response = new CakeResponse();
$dispatcher->dispatch( $request, $response );

同样可以在 Zend Framework 中实现:

$this->forward(
'action',
'controller',
'module',
array(
'q' => 'some_sensitive_data'
)
);

关于php - 内部重定向是否对客户端 php 可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24882563/

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