【问题标题】:How can I protect users not to upload php scripts?如何保护用户不上传 php 脚本?
【发布时间】:2013-03-25 04:07:44
【问题描述】:

如何保护用户不上传 php 脚本?

我将以下代码放入 ( /uploads/ ) 文件夹的 .htaccess 中。

<Files ^(*.php|*.phps)>
order deny,allow
deny from all
</Files>
<FilesMatch "\.(php|pl|py|jsp|asp|htm|shtml|sh|cgi.+)$">
ForceType text/plain
</FilesMatch>

但我仍然可以上传 php 文件和 php 文件仍然是可执行的。我或代码有什么问题?

【问题讨论】:

  • 您是担心上传文件还是只是访问它们? Apache 配置与您上传文件的能力无关。
  • 将媒体文件列入白名单,然后使用 PHP 进行验证。
  • 在服务器上上传时检查文件扩展名。与.htaccess无关

标签: php upload


【解决方案1】:
$allowed_ext = array("png","jpeg","gif");
$file_name = $_FILES['file']['name'];
$file_ext = end(explode(".",$file_name));
if(in_array($file_ext,$allowed_ext)){
//uplod_here;
}
else{
//reject
}

【讨论】:

  • messi fan 感谢您的回答,我正在搜索的不是 php 解决方案。假设用户(或)攻击者可以绕过我的 /uploads/ 文件夹并上传 php 脚本。但是当他们执行它时,它不会执行任何操作,或者它将是纯文本。 (对不起我的英语)
猜你喜欢
  • 2023-03-14
  • 2014-10-10
  • 1970-01-01
  • 2011-04-23
  • 2012-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-13
相关资源
最近更新 更多