我最近在PHP脚本中遇到过这一行:
$_REQUEST['start_date']=$date;
Run Code Online (Sandbox Code Playgroud)
是否允许或以任何方式为超级全局$ _REQUEST变量赋值?如果有$ _COOKIE ['start_date']会改变cookie值吗?
是的,它允许并且可能由于多种原因而有所帮助.
$_REQUEST,$_GET或$_POST阵列.这将覆盖请求页面发送的任何值,这可能是期望的.json_encode所有$_REQUEST键值对以及一些其他值,那么以$_REQUEST这种方式"添加"值可能会更快,然后传递$_REQUEST给json_encode().关于你的问题$_COOKIE,不,你不能以这种方式改变cookie的价值,只能访问它.
作者注意:以下示例作为建议和批准的编辑添加到我的原始答案中.虽然它可能有效,但有更好的方法可以保护您的站点免受注入攻击(例如准备好的语句).恕我直言,谨慎的程序员应该在依赖下面的代码之前强烈考虑这些方法.
考虑在您的网站上防止SQL注入攻击.这个简单的代码将为所有$_REQUEST变量停止它们(mysqli示例):
function injectionwall($dbinterface)
{
foreach($_REQUEST as $key => $data)
{
$_REQUEST[$key]=$dbinterface->real_escape_string($data);
}
}
Run Code Online (Sandbox Code Playgroud)
所有$_REQUEST变量现在都可以安全使用:)
| 归档时间: |
|
| 查看次数: |
7307 次 |
| 最近记录: |