没有合适的资源?快使用搜索试试~ 我知道了~
php打开远程文件的方法和风险及解决方法
0 下载量 61 浏览量
2020-12-19
11:17:39
上传
评论
收藏 59KB PDF 举报
温馨提示
试读
1页
PHP有一个配置选项叫allow_url_fopen,该选项默认是有效的。它允许你指向许多类型的资源,并像本地文件一样处理。例如,通过读取URL你可以取得某一个页面的内容(HTML),看下面的代码复制代码 代码如下:<?php$contents = file_get_contents(‘https://www.jb51.net/’);?>当被污染数据用于include和require的文件指向时,会产生严重漏洞。实际上,我认为这种漏洞是PHP应用中最危险的漏洞之一,这是因为它允许攻击者执行任意代码。尽管严重性在级别上要差一点,但在一个标准文件系统函数中使用了被污染数据的话,会有类似的漏洞产生:
资源详情
资源评论
资源推荐
php打开远程文件的方法和风险及解决方法打开远程文件的方法和风险及解决方法
PHP有一个配置选项叫allow_url_fopen,该选项默认是有效的。它允许你指向许多类型的资源,并像本地文件一样处理。例
如,通过读取URL你可以取得某一个页面的内容(HTML),看下面的代码
复制代码 代码如下:
<?php
$contents = file_get_contents(‘https://www.jb51.net/’);
?>
当被污染数据用于include和require的文件指向时,会产生严重漏洞。实际上,我认为这种漏洞是PHP应用中最危险的漏洞之
一,这是因为它允许攻击者执行任意代码。尽管严重性在级别上要差一点,但在一个标准文件系统函数中使用了被污染数据的
话,会有类似的漏洞产生:
复制代码 代码如下:
<?php
$contents = file_get_contents($_GET[‘filename’]);
?>
该例使用户能操纵file_get_contents( )的行为,以使它获取远程资源的内容。考虑一下类似下面的请求:
http://example.org/file.php?file … mple.org%2Fxss.html
这就导致了$content的值被污染的情形,由于这个值是通过间接方式得到的,因此很可能会忽视这个事实。这也是深度防范原
则会视文件系统为远程的数据源,同时会视$content的值为输入,这样你的过滤机制会潜在的起到扭转乾坤的作用。
由于$content值是被污染的,它可能导致多种安全漏洞,包括跨站脚本漏洞和SQL注入漏洞。例如,下面是跨站脚本漏洞的示
例:
复制代码 代码如下:
<?php
$contents = file_get_contents($_GET[‘filename’]);
echo $contents;
?>
解决方案解决方案是永远不要用被污染的数据去指向一个文件名。要坚持过滤输入,同时确信在数据指向一个文件名之前被过滤即可:
复制代码 代码如下:
<?php
$clean = array();
/* Filter Input ($_GET[‘filename’]) */
$contents = file_get_contents($clean[‘filename’]);
?>
尽管无法保证$content中的数据完全没有问题,但这还是给出了一个合理的保证,即你读取的文件正是你想要读取的文件,而
不是由攻击者指定的。为加强这个流程的安全性,你同样需要把$content看成是输入,并在使用前对它进行过滤。
复制代码 代码如下:
<?php
$clean = array();
$html = array();
/* Filter Input ($_GET[‘filename’]) */
$contents = file_get_contents($clean[‘filename’]);
/* Filter Input ($contents) */
$html[‘contents’] = htmlentities($clean[‘contents’], ENT_QUOTES, ‘UTF-8’);
echo $html[‘contents’];
?>
上面的流程提供了防范多种攻击的强有力的方法,同时在实际编程中推荐使用。
您可能感兴趣的文章您可能感兴趣的文章:php下载远程文件类(支持断点续传)PHP 远程文件管理,可以给表格排序,遍历目录,时间排序获取远程
文件大小的php函数PHP 获取远程文件内容的函数代码PHP 网络开发详解之远程文件包含漏洞php带密码功能并下载远程文件
保存本地指定目录 修改加强版php下利用curl判断远程文件是否存在的实现代码PHP读取文件并可支持远程文件的代码分享
PHP 获取远程文件大小的3种解决方法php实现按文件名搜索文件的远程文件查找器PHP实现的一个保存远程文件到本地的函
数分享PHP下载远程文件到本地存储的方法php获取远程文件大小
weixin_38679276
- 粉丝: 2
- 资源: 911
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0