首页 > 后端开发 > php教程 > PHP 中哪些 $_SERVER 变量可以安全使用?

PHP 中哪些 $_SERVER 变量可以安全使用?

DDD
发布: 2024-11-11 00:55:03
原创
516 人浏览过

Which $_SERVER Variables Are Safe to Use in PHP?

识别安全的 $_SERVER 变量

攻击者可以利用用户可以控制的变量,使它们不安全或“被污染”。本文旨在提供 $_SERVER 变量及其各自安全级别的完整列表。

服务器控制

这些变量由服务器设置,不受用户影响输入:

  • 'GATEWAY_INTERFACE'
  • 'SERVER_ADDR'
  • 'SERVER_SOFTWARE'
  • 'DOCUMENT_ROOT'
  • 'SERVER_ADMIN'
  • 'SERVER_SIGNATURE'

部分服务器控制

这些变量取决于客户端的请求,但有效值有限,使其可靠:

  • 'HTTPS'
  • 'REQUEST_TIME'
  • 'REMOTE_ADDR'(通过 TCP/IP 握手验证)
  • 'REMOTE_HOST'(可能是欺骗性的) )
  • 'REMOTE_PORT'
  • 'SERVER_PROTOCOL'
  • 'HTTP_HOST'(如果服务器未处理)
  • 'SERVER_NAME'
  • 'SCRIPT_FILENAME'
  • 'SERVER_PORT'
  • 'SCRIPT_NAME'

完全任意用户控制

这些变量是容易受到用户操纵:

  • 'argv'、'argc'
  • 'REQUEST_METHOD'
  • 'QUERY_STRING'
  • 'HTTP_ACCEPT'
  • 'HTTP_ACCEPT_CHARSET'
  • 'HTTP_ACCEPT_ENCODING'
  • 'HTTP_ACCEPT_LANGUAGE'
  • 'HTTP_CONNECTION'
  • 'HTTP_REFERER'
  • ' HTTP_USER_AGENT'
  • 'AUTH_TYPE'
  • 'PHP_AUTH_DIGEST'
  • 'PHP_AUTH_USER'
  • 'PHP_AUTH_PW'
  • 'PATH_INFO'
  • 'ORIG_PATH_INFO'
  • 'REQUEST_URI'(可能包含受污染的数据)
  • 'PHP_SELF'(可能包含受污染的数据)
  • 'PATH_TRANSLATED'
  • 任何其他“HTTP_”值

环境变量

环境变量的安全性取决于其来源。它们的范围可以从完全服务器控制到完全用户控制。

以上是PHP 中哪些 $_SERVER 变量可以安全使用?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板