2012-09-27 1 views
0

아래의 코드가 가능합니까? 또는 보안 문제 때문에 아니오? 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); 
?> 
+1

도메인간에 글을 쓰지 않고 동일한 파일 시스템의 다른 파일에 쓰고 있습니다. 웹 서버 사용자가 파일에 대한 쓰기 권한을 가지고 있으면 정상적으로 작동합니다. –

+0

'localhost'의 멋진 영역에서 시도해보십시오. – moonwave99

+0

이것은 사용 권한 파일에 따라 다릅니다. – SIFE

답변

3

는만큼 스크립트가이 파일에 쓰기 권한을 가진 컨텍스트에서 실행되고, 그것은 작동합니다.

보안 문제 질문을 사용하여 수행중인 작업과 두 번째 디렉터리가 공개적으로 표시되는지 여부에 대한 자세한 정보가 필요합니다.

+0

그래서 위치를 어떻게 지정합니까? PHP가 위치한 폴더를 보면 localhost로 해석 할 도메인을 지정할 수 있습니까? – Necrohhh

+0

아니요, 도메인을 지정하면 HTTP가 사용됩니다 (서버의 설정에 따라 작동 여부는 다를 수 있음). –

+0

쓰기를 시도하는 영역의 파일 시스템 위치를 지정해야하며 서버에 첫 번째 도메인으로 마운트해야합니다. –

1

원격 파일은 대부분 PHP에 의해 쓰기 가능하지 않을 것이다, 그러나 로컬 폴더의 경우, 그냥 PHP 해당 폴더 + 파일에 대한 쓰기 액세스 권한이 있는지 여부에 따라 달라집니다.

이 읽기 ​​: PHP는 파일 이름이 로컬 파일을 지정하는 것을 결정했다 경우

는 "다음 해당 파일에 스트림을 열려고합니다

당신이 그를 확인해야하므로 파일이 PHP에 액세스 할 수 있어야합니다. 파일 액세스 권한이이 액세스를 허용합니다. 안전 모드를 활성화 한 경우 또는 open_basedir 추가 제한이 적용될 수 있습니다. "

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

1

PHP는 파일 시스템 어디에서나 쓸 수 있습니다. PHP는 LFI를 실행하는 서버의 도메인에만 국한되지 않으므로 LFI가 매우 효율적입니다.

1

PHP는 쓰기 권한이있는 디렉토리에 쓸 수 있습니다. 공유 서버에있는 다른 사람의 계정처럼 액세스 할 수 없다면 아무 것도 할 수 없습니다.

0

내 질문에 대한 대답은 '예'입니다. 나는 그 상황에 대해 잘 알지 못했고 파일로 올라가는 올바른 방법을 알고있었습니다. 다음은 최종 작업 스크립트입니다. /1/fwrite.php에서 작성하는 스크립트는 다음과 같습니다.

<?php 
$file = fopen("../2/derp.txt","w"); 
fwrite($file,"Hello World!"); 
fclose($file); 
?>