PHP 使用 $_SERVER['PHP_SELF'] 获取当前页面地址,$_SERVER['REQUEST_URI']获取完整参数URL
来源:互联网 发布:php读取图片并输出 编辑:程序博客网 时间:2024/04/29 02:13
PHP $_SERVER['PHP_SELF']
$_SERVER['PHP_SELF']
表示当前 php 文件相对于网站根目录的位置地址,与 document root 相关。
假设我们有如下网址,$_SERVER[‘PHP_SELF’]得到的结果分别为:
http://www.baicai.link/index/ :/index/index.phphttp://www.baicai.link/cate/miandan.html :/cate/miandan.htmlhttp://www.baicai.link/php/index.php?test=foo :/php/index.phphttp://www.baicai.link/php/index.php/test/foo :/php/index.php/test/foo
因此,可以使用 $_SERVER[‘PHP_SELF’] 很方便的获取当前页面的地址:
$url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
以上面的地址为例,得到的结果如下:
http://www.baicai.link/php/index.php
上面是简单获取 http 协议的当前页面 URL ,只是要注意该地址是不包含 URL 中请求的参数(?及后面的字串)的。如果希望得到包含请求参数的完整 URL 地址,请使用 $_SERVER['REQUEST_URI']
。
PHP $_SERVER['PHP_SELF']
安全性
由于利用 $_SERVER['PHP_SELF']
可以很方便的获取当前页面地址,因此一些程序员在提交表单数据到当前页面进行处理时,往往喜欢使用如下这种方式:
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
假设该页面地址为:
http://www.baicai.link/php/index.php
访问该页面,得到的表单 html 代码如下:
<form method="post" action="/php/index.php">
这段代码是正确的,但是当访问地址变成:
http://www.baicai.link/php/index.php/test/foo
页面正常执行了,表单 html 代码变成:
<form method="post" action="/php/index.php/test/foo">
显然这段代码不是我们期望的,攻击者可以在 URL 后面随意加上攻击代码。要解决该问题,可以:
使用htmlentities($_SERVER['PHP_SELF']) 替代 $_SERVER['PHP_SELF'],让 URL 中可能的恶意代码转换为用于显示的 html 代码而无法执行。可以的条件下,使用 $_SERVER['SCRIPT_NAME'] 或 $_SERVER['REQUEST_URI'] 替代 $_SERVER['PHP_SELF']在公共代码里将 $_SERVER['PHP_SELF'] 进行重写:$phpfile = basename(__FILE__);$_SERVER['PHP_SELF'] = substr($_SERVER['PHP_SELF'], 0, strpos($_SERVER['PHP_SELF'], $phpfile)).$phpfile;
1 0
- PHP 使用 $_SERVER['PHP_SELF'] 获取当前页面地址,$_SERVER['REQUEST_URI']获取完整参数URL
- php通过$_SERVER获取当前页面完整URL地址
- PHP 使用 $_SERVER['PHP_SELF'] 获取当前页面地址及其安全性问题
- PHP获取当前url路径的函数及服务器变量:$_SERVER["QUERY_STRING"],$_SERVER["REQUEST_URI"],$_SERVER["SCRIPT_NAME"],$_SER
- PHP获取当前url路径的函数及服务器变量:$_SERVER["QUERY_STRING"],$_SERVER["REQUEST_URI"],$_SERVER["SCRIPT_NAME"],$_SER
- PHP获取当前url路径的函数及服务器变量:$_SERVER["QUERY_STRING"],$_SERVER["REQUEST_URI"],$_SERVER["SCRIPT_NAME"],$_SER
- PHP $_SERVER[PHP_SELF],[SCRIPT_NAME], ['REQUEST_URI']
- PHP $_SERVER["QUERY_STRING"]、$_SERVER["REQUEST_URI"]、$_SERVER["SCRIPT_NAME"]和$_SERVER["PHP_SELF"]
- PHP $_SERVER["SCRIPT_NAME"]、$_SERVER["PHP_SELF"]、$_SERVER["QUERY_STRING"]、$_SERVER["REQUEST_URI"]
- php $_SERVER['PHP_SELF'] $_SERVER['SCRIPT_NAME'] $_SERVER['REQUEST_URI']区别
- PHP获取当前页面完整URL地址
- php获取当前页面完整URL地址
- $_SERVER['REQUEST_URI']获取不到值
- $_SERVER['PHP_SELF']和$_SERVER['SCRIPT_NAME']和$_SERVER["QUERY_STRING"],$_SERVER["REQUEST_URI"]
- php $_SERVER当前完整url的写法
- PHP获取 当前页面名称、主机名、URL完整地址、URL参数、获取IP
- PHP获取当前页面的名称,主机名,URL完整地址,URL参数,获取IP
- PHP $_SERVER['PHP_SELF']、$_SERVER['SCRIPT_NAME'] 与 $_SERVER['REQUEST_URI'] 之间的区别
- Sqlmap 使用简介
- 判断0-2000之间有多少个素数,并输出这些素数
- Java源码之HashSet
- 闭包级别局部变量存储DOM元素的风险
- 心情:关于xx小偷软件,其实....
- PHP 使用 $_SERVER['PHP_SELF'] 获取当前页面地址,$_SERVER['REQUEST_URI']获取完整参数URL
- Linux下防火墙开启相关端口及查看已开启端口
- 由博返约-由全栈到前端
- iPhone屏幕尺寸、分辨率及适配
- 关于OSX 是bate 版本的,IOS提交appstore 的问题
- word2007二级标题自动编号不从大标题开始的解决方法
- 魅族note(电信版)缩略图显示不正确问题
- JSTL中c:set标签的用法
- iOS:UINavigationBar appearance与UIBarButtonItem appearance简介