0

下面的代码可以吗?或者没有,因为它是一个安全问题?我想从一个文件夹 fwrite 到另一个文件夹,所以如果 fwrite 函数位于 /1,我可以 fwrite 到 /2 上的 .txt 文件吗?

<?php
$myFile = "../news/derp.txt";
$fh = fopen('derp.txt', 'w') or die("File Can't Be Written To.");
$stringData = "Yo, .";
fwrite($fh, $stringData);
fclose($fh);
?>
4

5 回答 5

3

只要脚本在对文件具有写入权限的上下文中执行,它就应该可以工作。

安全问题问题需要更多关于您正在使用它做什么以及第二个目录是否公开可见的信息。

于 2012-09-27T01:55:54.090 回答
1

PHP 很可能无法写入远程文件,但如果它是本地文件夹,则仅取决于 PHP 是否具有对该文件夹 + 文件的写入权限。

读这个:

“如果 PHP 已经确定文件名指定了一个本地文件,那么它将尝试在该文件上打开一个流。该文件必须可供 PHP 访问,因此您需要确保文件访问权限允许此访问。如果您已启用安全模式或 open_basedir 可能会应用进一步的限制。”

http://php.net/manual/en/function.fopen.php

于 2012-09-27T01:55:24.347 回答
1

PHP 可以写入文件系统上的任何位置。PHP 不限于运行它的服务器的域,这就是 LFI 如此高效的原因。

于 2012-09-27T01:56:13.917 回答
1

PHP 可以写入它具有写入权限的任何目录。如果您无权访问它,例如共享服务器上的其他人的帐户,那么不,您可能无法做到这一点。

于 2012-09-27T01:56:57.400 回答
0

我的问题的答案是肯定的。我只是不知道情况,以及升入档案的正确方法。这是最终的工作脚本。从 /1/fwrite.php 编写,这是脚本。

<?php
$file = fopen("../2/derp.txt","w");
fwrite($file,"Hello World!");
fclose($file);
?>
于 2012-09-27T02:10:14.773 回答