2

我为我开发的应用程序运行了灰盒评估测试,并且我有一些漏洞,具体是输入验证类别中的路径操作。

我的代码中有:

if (move_uploaded_file($_FILES["file"]["tmp_name"],"contacts_load/" . $fileName)) {
    if ($import = fopen ("contacts_load/" . $fileName,"r")) {

和:

unlink("contacts_load/" . $fileName);

问题出在contacts_load/.

您将在下面找到有关此的一些信息:

描述:允许用户输入控制文件系统操作中使用的路径可能使攻击者能够访问或修改受保护的系统资源。

具体场景:

满足以下两个条件时会发生路径操作错误:

  1. 攻击者可以指定文件系统操作中使用的路径。

  2. 通过指定资源,攻击者获得了原本不允许的能力。

例如,该程序可能赋予攻击者覆盖指定文件或使用攻击者控制的配置运行的能力。

我如何防止这种特定场景的路径操纵?

4

2 回答 2

1

没有问题contacts_load/。用户不能修改它。

不过我建议你消毒$_FILES["file"]["name"]这个答案应该会有所帮助。

于 2014-12-09T20:53:38.847 回答
1

.htaccess 文件?

# Protect files and directories from prying eyes.
<FilesMatch "\.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)(~|\.sw[op]|\.bak|\.orig|\.save)?$|^(\..*|Entries.*|Repository|Root|Tag|Template)$|^#.*#$|\.php(~|\.sw[op]|\.bak|\.orig\.save)$">
  Order allow,deny
</FilesMatch>

# Don't show directory listings for URLs which map to a directory.
Options -Indexes
于 2014-12-09T20:55:15.203 回答