【发布时间】:2017-03-21 19:17:10
【问题描述】:
我正在使用此脚本从 Android 应用接收 base 64 编码图像。我想知道是否有任何方法可以绕过 POST 请求中的 PHP shell 命令并让它在服务器中工作,例如,发送命令 shell 编码和名称如“shell.php”、“shell.php%” 0删除0”。根据脚本,所有内容都将保存为 .png,所以我会说它是安全的,但也许我错了,脚本实际上容易受到 shell 命令上传的攻击。
<?php
header('charset=utf-8');
if($_SERVER['REQUEST_METHOD'] == 'POST') {
if(isset($_POST['image']) && isset($_POST['name'])) {
$image = $_POST['image'];
$name = $_POST['name'];
file_put_contents("/var/www/html/admigas/android/uploads/$name".strval(date('_Ym')).".png",base64_decode($image));
echo "Success";
} else {
echo "Wrong params";
}
} else {
echo "Nothing to do";
}
?>
【问题讨论】:
-
您是说要发送要从应用程序运行的脚本的名称吗?如果是这样,请不要这样做。如果你真的想这样做,请确保你使用准备好的语句,很好地清理输入并且仍然不要这样做。
标签: php linux shell security file-upload