我想允许我运行的javascript应用程序仅在给定的子目录中删除文件。我有php,这确实是不安全的:unlink($_POST['delete']);
为了使它更安全我扩展到:
$file = $_POST['delete'];
if (strpos($file, "..") == -1){
unlink($file);
}
如果目录中的文件链接到目录之外,则仍存在漏洞。此外,这种方法通常感觉非常不安全。我理解不安全的地方,如果必须,我会留下这样的意思,但我宁愿拥有一个更安全的版本。为了进行扩展,该应用程序位于个人服务器上,没有任何重要信息。
作为演示漏洞的示例:
foo bar -> /usr/ baz.txt and $_POST['delete'] == 'foo/bar/bin'