gpt4 book ai didi

php - $_SERVER ['SERVER_PROTOCOL' ] 可以注入(inject)吗?

转载 作者:可可西里 更新时间:2023-10-31 23:39:38 25 4
gpt4 key购买 nike

我正在使用 Apache+mod_fastcgi 运行一个 PHP 网站。Apache 错误日志中有错误:

malformed header from script 'ajax.php': Bad header: /;ls -la HTTP/1.0 400 Bad Requ

这是 ajax.php 中唯一发送 header 的代码:

if(!isset($_POST['action'])) {
header ($_SERVER['SERVER_PROTOCOL'] . ' 400 Bad Request');
exit;
}

那么 /;ls -la 片段是从哪里来的呢? SERVER_PROTOCOL 可以以任何方式注入(inject)吗?

最佳答案

There are two special-case header calls. The first is a header that starts with the string "HTTP/" (case is not significant), which will be used to figure out the HTTP status code to send. (from PHP header documentation)

因此,如上所述发送状态代码的正确(且安全)方式是:

header('HTTP/1.1 400 Bad Request');

您使用的是 HTTP/1.0 还是 HTTP/1.1 并不重要。

关于php - $_SERVER ['SERVER_PROTOCOL' ] 可以注入(inject)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30305119/

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