2010-12-27 4 views
0

을 원하지 않는 ..사용 file_get_contents() - PHP 코드는 내가 직접적 아래로, 액세스하고 나는 보통 그들을을 방지하기 위해 일부 PHP 코드를 포함하는 사이트에 사용할 내 데이터 파일로

<?php 

if (defined("VALID")) { 

?> 

    html code here 

<?php 

} else { 

    die('Restricted Access.'); 

} 

?> 

}} 이제는 간단한 작업을 수행 할 때 작동합니다 ..... 그러나 일부 파일을 사용하여 &에서 일부 대체 작업을 수행하므로 file_get_contents(); 그러나 이것을 사용할 때 HTML 코드를 얻을뿐만 아니라 PHP 코드가 반환되기도합니다 .....이 코드는 소스에서 끝나기 때문에 필자는 원하지 않습니다.

이 문제가 발생합니까? 아마도 PHP 코드를 제거할까요? 더 좋은 방법/제안?

+0

불변의 보안 접근법에 대해서는 상수 검사 및 죽기()가 적절하지 않으며 지표가 아닙니다. 단지 데이터 파일이라면, 단순히 그것들을 별도의 디렉토리에 넣고'.htaccess'에서'Allow/Deny'로 원격 액세스를 차단하십시오. – mario

+0

나쁜 보안 접근 방법에 대해 자세히 설명해 주시겠습니까? 연습의 요점은 보안을 강화하는 것입니다 ... & 파일은 별도의 디렉토리에 있습니다. – Brett

답변

2

출력에서 ​​ 출력을 바꾸려면 출력 버퍼링을 사용하십시오. 대신 file_get_contents('your-php-script.php')

이 작업을 수행 :

ob_start(); 
include('your-php-script.php'); 
$contents = ob_get_clean(); 

// do your replacements on a $contents 
+0

그것은 대단한 감사입니다 .... 감사합니다. – Brett

0

세션 쿠키에 해시 된 문자열을 사용하여 확인하지 않는 이유는 무엇입니까? 나는 그 최선의 해결책이라고 생각한다. 쿠키에 해시 된 값을 추가 한 다음, 유효한 값인지 확인하십시오.

희망이 있습니다.

+0

좋은 쿠키는 항상 100 % 사용할 수 없으므로 실제로 쿠키에 의존 할 수 없습니다. :( – Brett

1
echo preg_replace("~<\?php(.*?)\?>~", "", $contents); 

이 파일의 PHP 코드를 삭제하는 작업을해야한다.

+0

대단히 감사합니다! – Brett