2012-04-11 4 views
1

간단한 질문이 있습니다. 사용자가 PHP 스크립트에 URL을 제공하여 URL에서 페이지를 가져 와서 구문 분석하고 사용자에게 일부 스 니펫을 표시합니다. 이제 위생 처리하거나 더 나은 URL을 이스케이프 처리하므로 file_get_contents()를 사용하여 URL을 가져 오는 것이 안전합니다.file_get_contents에서 사용하기 위해 사용자 입력에서 URL을 안전하게 이스케이프하는 방법은 무엇입니까?

내 간단한 코드는 다음과 같습니다

$url = $_POST['url']; 
$html = file_get_contents($url); 
내 마음에 와서 무엇을

우선 악 URL을 잡기 위해 정규식을 사용하는 것입니다,하지만 난 그게 효율적이라고 생각하지 않습니다 더 나은 전체를 피할 것 URL. 하지만 file_get_contents() 함수에서 사용할 URL을 이스케이프하는 데 사용할 수있는 PHP 함수는 무엇입니까?

+3

"이스케이프는"여기에 쓸모가 없다. 당신은 * validation *을 찾고 있습니다. – deceze

답변

2

http:// 또는 https://으로 시작하는 URL 만 있으면됩니다.

운좋게 PHP는 file:// URL 로의 리디렉션을 따르지 않을 정도로 똑똑합니다.
ftp:// URL로 리디렉션됩니다. 따라서 서버가 인증없이 내부 FTP 서버에 액세스 할 수 없는지 확인하는 것이 좋습니다.

+2

마지막 문장을 더 잘 테스트해야합니다. :) – deceze

+0

@ThiefMaster 답안에 대한 참조 링크를 제공 할 수 있습니까 (예 : PHP가'file : //'을 따르지 않음)? – Frodik

+1

@Frodik : 테스트 해 보았습니다. – ThiefMaster

관련 문제