0

以下のコードは可能ですか?またはいいえ、それはセキュリティ上の問題のためですか?あるフォルダから別のフォルダに fwrite したいので、fwrite 関数が /1 にある場合、/2 の .txt ファイルに fwrite できますか?

<?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

ファイルへの書き込み権限があるコンテキストでスクリプトが実行されている限り、スクリプトは機能するはずです。

セキュリティ問題の質問には、それを使って何をしているのか、および 2 番目のディレクトリが公開されているかどうかについて、より多くの情報が必要です。

于 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 に答える