• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >JavaScript > 详解PHP中pathinfo()函数导致的安全问题

详解PHP中pathinfo()函数导致的安全问题

作者:Security 字体:[增加 减小] 来源:互联网 时间:2017-05-11

Security通过本文主要向大家介绍了php pathinfo 函数,php pathinfo,php中pathinfo,php 开启pathinfo,php pathinfo模式等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

定义和用法

pathinfo() 函数以数组或字符串的形式返回关于文件路径的信息。

返回的数组元素如下:

  1. [dirname]:返回文件路径中的目录部分
  2. [basename]:返回文件路径中文件名的部分
  3. [extension]:返回文件路径中文件的类型的部分

语法

pathinfo(path,options)

参数

  1. path: 必需。规定要检查的路径。
  2. options 可选。规定要返回的数组元素。默认是 all。

可能的值:

  1. PATHINFO_DIRNAME - 只返回 dirname
  2. PATHINFO_BASENAME - 只返回 basename
  3. PATHINFO_EXTENSION - 只返回 extension

提示和注释

注释:如果不是请求所有的元素,则 pathinfo() 函数返回字符串。

php开启pathinfo 路由模式:pathinfo 模式 需要 php.ini 开启下面这个参数

cgi.fix_pathinfo=1

path_info模式:http://www.xxx.com/index.php/模块/方法

实例 1

<?php
print_r(pathinfo("/testweb/test.txt"));
?>
</div>

上面的代码将输出:

Array
(
[dirname] => /testweb
[basename] => test.txt
[extension] => txt
)
</div>

实例 2

<?php
var_dump(pathinfo("/testweb/test.txt",PATHINFO_DIRNAME));
var_dump(pathinfo("/testweb/test.txt",PATHINFO_BASENAME));
var_dump(pathinfo("/testweb/test.txt",PATHINFO_EXTENSION));
?>
</div>

上面的代码将输出:

string(8)"/testweb"
string(8)"test.txt"
string(3)"txt"
</div>

应用

目录不可控没有执行权限

pathinfo, 一种伪静态的用法,path_info 模式:http://www.xxx.com/index.php / 模块 / 方法:

sb.txt 被当成了模块,实际上请求的还是 6.php

一句话就执行了。

过 WAF 注入

本地安装 apache 安全狗

已知在开启 pathinfo 的情况下 (默认开启) 可以这样访问

常用注入语句被拦截

pathinfo 模式不拦截

总结

以上就是这篇文章的全部内容了,本文也算是抛砖引玉,更多用途请自测!希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 详解PHP中pathinfo()函数导致的安全问题

相关文章

  • 2017-05-11Vue-Router实现页面正在加载特效方法示例
  • 2017-05-11JavaScript 中 apply 、call 的详解
  • 2017-05-11微信小程序 网络请求(post请求,get请求)
  • 2017-05-11ES6中Proxy代理用法实例浅析
  • 2017-05-11jquery实现刷新随机变化样式特效(tag标签样式)
  • 2017-09-04JS中浏览器兼容性问题
  • 2017-05-11vuejs2.0实现一个简单的分页示例
  • 2017-05-11关于vuex的学习实践笔记
  • 2017-05-11PHP实现本地图片上传和验证功能
  • 2017-05-11详解angular中通过$location获取路径(参数)的写法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 巧用canvas
    • js 性能优化之快速响应的用户界面
    • js省市区下拉代码分享
    • Nodejs多站点切换Htpps协议详解及简单实例
    • Vue.Js中的$watch()方法总结
    • js如何判断是否在iframe中及防止网页被别站用iframe嵌套
    • 原生js实现秒表计时器功能
    • JavaScript中transform实现数字翻页效果
    • 原生js实现类似fullpage的单页/全屏滚动
    • ES6中参数的默认值语法介绍

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有