gpt4 book ai didi

php - 如果给 $_REQUEST 赋值会发生什么?

转载 作者:可可西里 更新时间:2023-11-01 12:50:54 24 4
gpt4 key购买 nike

我最近在 PHP 脚本中遇到了这一行:

$_REQUEST['start_date']=$date;

以任何方式为 super 全局 $_REQUEST 变量赋值是否允许或有用?如果有 $_COOKIE['start_date'] 这会改变 cookie 值吗?

最佳答案

是的,它是允许的,并且出于多种原因可能会有所帮助。

  • 调试 -- 如果出于某种原因你想“强制”某个请求参数,你可以在$_REQUEST中设置一个值,$ _GET$_POST 数组。这将覆盖请求页面发送的任何值,这可能是需要的。
  • 因为您要对整个数组执行某些操作 - 例如,如果您想要json_encode 所有$_REQUEST 键值对以及一些附加值,以这种方式将值“添加”到$_REQUEST 可能会更快,然后将 $_REQUEST 传递给 json_encode()

关于您关于 $_COOKIE 的问题,不,您不能以这种方式更改 cookie 的值,只能访问它。

作者注: 以下示例已作为建议和批准的编辑添加到我的原始答案中。虽然它可能有效,但有更好的方法来保护您的网站免受注入(inject)攻击(例如 prepared statements )。恕我直言,谨慎的程序员在依赖下面的代码之前应该仔细考虑这些方法。

考虑在您的网站上防止 SQL 注入(inject)攻击。这个简单的代码将停止所有 $_REQUEST 变量(mysqli 示例):

function injectionwall($dbinterface)
{
foreach($_REQUEST as $key => $data)
{
$_REQUEST[$key]=$dbinterface->real_escape_string($data);
}
}

所有 $_REQUEST 变量现在都可以安全使用了:)

关于php - 如果给 $_REQUEST 赋值会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11096978/

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