现在的位置: 首页 > 综合 > 正文

PHP安全基础 - 文件与命令[整理]

2017年12月26日 ⁄ 综合 ⁄ 共 452字 ⁄ 字号 评论关闭
文章目录

导读:PHP大量的文件系统函数,与shell命令只有少量区别。

详细:

1 文件系统跨越

如下面的代码:

$handle = fopen("/path/to/{$_GET['filename']}.txt", 'r');

一个方面:使用../../进行文件目录读取;

另一方面,使用NULL——在URL中表示为%00来使字符串终止,而去执行任何扩展名的文件。

2 远程文件风险

使用file_get_contents读取远程文件时候,坚持过滤输入。

3 命令注入

一般不建议使用exec。如果真心要用,需要使用escapeshellcmd 和 escapeshellarg 进行过滤。如下:

<?php
$clean = array();
$shell = array();

$shell['cmd'] = escapeshellcmd($clean['cmd']);
$shell['arg'] = escapeshellarg($clean['arg']);

exec("{$shell['cmd'] $shell['arg']}", $output, $return);

抱歉!评论已关闭.