前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >php特性

php特性

原创
作者头像
用户11062199
发布2024-04-16 20:39:07
发布2024-04-16 20:39:07
8500
代码可运行
举报
运行总次数:0
代码可运行

Windows系统中index.php.等同于index.php Linux系统不行 Windows中 http:// http:\\都一样

c=_GET['$work'] a=‘hello,world’ b=''

?work=hhello,worldello,word;

(get 数据流)?abc=data://text/plain;base64;64编码的内容 data协议

file=php://filter/convert.base64-encode/resource=flag.php filter协议查看flag.php的源码

两个操作都要执行时用&

php://filter/iconv.UCS-4.UCS-2/resourse=flag.php 输入编码和输出编码

元素/代码

描述

$_SERVER['PHP_SELF']

返回当前执行脚本的文件名。

$_SERVER['GATEWAY_INTERFACE']

返回服务器使用的 CGI 规范的版本。

$_SERVER['SERVER_ADDR']

返回当前运行脚本所在的服务器的 IP 地址。

$_SERVER['SERVER_NAME']

返回当前运行脚本所在的服务器的主机名(比如 www.w3school.com.cn)。

$_SERVER['SERVER_SOFTWARE']

返回服务器标识字符串(比如 Apache/2.2.24)。

$_SERVER['SERVER_PROTOCOL']

返回请求页面时通信协议的名称和版本(例如,“HTTP/1.0”)。

$_SERVER['REQUEST_METHOD']

返回访问页面使用的请求方法(例如 POST)。

$_SERVER['REQUEST_TIME']

返回请求开始时的时间戳(例如 1577687494)。

$_SERVER['QUERY_STRING']

返回查询字符串,如果是通过查询字符串访问此页面。

$_SERVER['HTTP_ACCEPT']

返回来自当前请求的请求头。

$_SERVER['HTTP_ACCEPT_CHARSET']

返回来自当前请求的 Accept_Charset 头( 例如 utf-8,ISO-8859-1)

$_SERVER['HTTP_HOST']

返回来自当前请求的 Host 头。

$_SERVER['HTTP_REFERER']

返回当前页面的完整 URL(不可靠,因为不是所有用户代理都支持)。

$_SERVER['HTTPS']

是否通过安全 HTTP 协议查询脚本。

$_SERVER['REMOTE_ADDR']

返回浏览当前页面的用户的 IP 地址。

$_SERVER['REMOTE_HOST']

返回浏览当前页面的用户的主机名。

$_SERVER['REMOTE_PORT']

返回用户机器上连接到 Web 服务器所使用的端口号。

$_SERVER['SCRIPT_FILENAME']

返回当前执行脚本的绝对路径。

$_SERVER['SERVER_ADMIN']

该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数。

$_SERVER['SERVER_PORT']

Web 服务器使用的端口。默认值为 “80”。

$_SERVER['SERVER_SIGNATURE']

返回服务器版本和虚拟主机名。

$_SERVER['PATH_TRANSLATED']

当前脚本所在文件系统(非文档根目录)的基本路径。

$_SERVER['SCRIPT_NAME']

返回当前脚本的路径。

$_SERVER['SCRIPT_URI']

返回当前页面的 URI。

phpXSS

代码语言:javascript
代码运行次数:0
复制
 <form method="post" action="<?php echo $_SERVER["PHP_SELF"];?>">

现在,如果用户进入的是地址栏中正常的 URL:"http://www.example.com/test_form.php",上面的代码会转换为:

代码语言:javascript
代码运行次数:0
复制
 <form method="post" action="test_form.php">

到目前,一切正常。

不过,如果用户在地址栏中键入了如下 URL:

代码语言:javascript
代码运行次数:0
复制
 http://www.example.com/test_form.php/%22%3E%3Cscript%3Ealert('hacked')%3C/script%3E

在这种情况下,上面的代码会转换为:

代码语言:javascript
代码运行次数:0
复制
 test_form.php/"><script>alert('hacked')</script>
代码语言:javascript
代码运行次数:0
复制
 <form method="post" action="test_form.php"/><script>alert('hacked')</script>

这段代码加入了一段脚本和一个提示命令。并且当此页面加载后,就会执行 JavaScript 代码(用户会看到一个提示框)。这仅仅是一个关于 PHP_SELF 变量如何被利用的简单无害案例。

代码语言:javascript
代码运行次数:0
复制
 <?php
 // 定义变量并设置为空值
 $name = $email = $gender = $comment = $website = "";
 ​
 if ($_SERVER["REQUEST_METHOD"] == "POST") {
   $name = test_input($_POST["name"]);
   $email = test_input($_POST["email"]);
   $website = test_input($_POST["website"]);
   $comment = test_input($_POST["comment"]);
   $gender = test_input($_POST["gender"]);
 }
 ​
 function test_input($data) {
   $data = trim($data);
   $data = stripslashes($data);
   $data = htmlspecialchars($data);
   return $data;
 }
 ?>

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Windows系统中index.php.等同于index.php Linux系统不行 Windows中 http:// http:\\都一样
  • phpXSS
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档