2015-06-22 57 views
-2

我得到了下面的php脚本。有人说,如果得到的PHP文件已重新命名为图像扩展名是不安全的。像:xxx.php.jpg或xxxx.jpg(包含php脚本)。我参考https://www.acunetix.com/websitesecurity/upload-forms-threat/的信息。当.htaccess获得这样的2行“AddHandler php5-script .php”,“AddType application/x-httpd-php .jpg”时,代码将是不安全的。我已经测试在.htaccess中添加这两行。我看不到网站可以从xxx.php.jpg或xxx.jpg执行php脚本。你会建议如何让这些图片可以像php脚本那样执行吗?当我估计什么是根本原因时,我可以很容易地预防未来的这些行为。请不要通知我使用fileinfo php函数。因为该php函数fileinfo必须与某个库一起使用。我不认为要求托管技术人员安装太麻烦。我希望能找到常用的方法。PHP上传文件脚本 - 安全问题

<?php 

$allowedExtensions = array("jpg","jpeg","png","pneg","gif"); 

$photo_str_to_lower=explode(".", strtolower($_FILES['photo']['name'])); 
$photo_upload_end_file=end($photo_str_to_lower); 

if(($_FILES['photo']['name']!='')&&(!in_array($photo_upload_end_file,$allowedExtensions))) 
{ 
?> 
<script type='text/javascript'> 
alert('The photo must support these file format - jpg, jpeg, png, pneg, gif.'); 
history.go(-1); 
</script> 
<?php 
exit; 
} 

?> 

回答

0

可以securize您上传它们保存到一个特定的文件夹,并添加此行的.htaccess(文件夹中)来禁用该文件夹

php_flag engine off 
+0

它是有用的,简单的PHP的运行。谢谢。我有另一个问题。如果主机帐户不支持.htaccess,会发生什么情况。任何其他方式可以帮助避免PHP脚本从宿主执行? – Jun

+0

唯一的想法就是与托管公司交谈(或更换公司) – Macerier