2012-10-16 4 views
3

나는, 나는 사람들이 직접 그 PHP 파일에 액세스하는 브라우저에 주소를 입력 할 수 싶지 않아한다 ./ajax/file.ajax.phpAJAX 요청을 제외하고 PHP 파일에 대한 직접 액세스를 차단 하시겠습니까?

문제에 PHP 파일에 액세스 할 수 AJAX를 사용하는 웹 페이지를 원하는.

AJAX 요청 만 파일에 액세스 할 수 있도록 만들 수있는 방법이 있습니까?

내가 이것을 확인할 수있는 PHP 파일이 있는지 확인할 수 있습니까?

답변

5

jQuery를 사용하여 XHR을 만드는 경우 사용자 지정 헤더 X-Requested-With이 설정됩니다. 이를 확인하고 응답을 제공하는 방법을 결정할 수 있습니다.

$isXhr = isset($_SERVER["HTTP_X_REQUESTED_WITH"]) 
     AND strotlower($_SERVER["HTTP_X_REQUESTED_WITH"]) == "xmlhttprequest"; 

그러나 이것은 매우 간단합니다. 과거에는 이것을 사용하여 전체 페이지 (설정되지 않은 경우) 또는 페이지 단편 (설정된 경우)을 현재 페이지에 삽입할지 여부를 결정했습니다.

+0

감사합니다. – Jamesking56

1

jQuery을 사용하고 있지 않거나 관심이 없거나/alex이 제공하는 맞춤 헤더를 사용할 수 없다면 AYax 요청과 함께 약간의 데이터가있을 수 있습니다. 해당 데이터가 전송되었는지 여부를 파일에서 확인하십시오. 주소 표시 줄에 GET을 보내면 POST을 제안하는 것입니다.

<?php 

if (empty($_POST['valid_ajax'])) 
    header('Location: /'); 

?> 

손으로 만든 데이터를 제공하는 것으로 속일 수는 있지만 제대로 된 것은 아닙니다. 그러나 문제가 그렇게 중요하지 않은 경우에는 아무런 이점도 없습니다.

+1

이것은 훌륭하게 작동했습니다! 왜 나까지이 사람이 아무도 투표하지 않은 이유를 모르겠다. – TharinduLucky

관련 문제