2011-07-31 2 views
6

AJAX 호출로 페이지 내용을 검색하려고합니다. 페이지 래퍼 내에 일련의 링크가 있습니다. 링크를 클릭하면 php 스크립트에서 페이지 내용을 검색하는 JavaScript 함수가로드됩니다. 이 경우에는 내 localhost으로 개발 중이지만 프로덕션에서는 스크립트가 AJAX 호출을 수행하는 파일과 동일한 루트 폴더 및 도메인 내에 있습니다. 응답을 div의 콘텐츠로 사용하고 있습니다. 내용은 순전히 PHP이 아니며 PHP에 의해 생성되는 동안 HTML 요소 (예 : div)와 범위를 포함한다는 의미입니다. 기본적으로 개폐문 태그 사이에있는 물건입니다. 이 때문에 나는 단지 json_encode을 사용할 수 있을지 확신하지 못합니다. 대신 div의 콘텐츠 로딩서버 구성에서 래퍼가 allow_url_include = 0으로 비활성화되었습니다.

, 나는 다음과 같은 오류 얻을 : allow_url_include에 독서 후

Warning: require_once() [function.require-once]: http:// wrapper is disabled in the server configuration by allow_url_include=0

를 보통 기본적으로 비활성화되어 보인다. 나는이 기능이 심각한 사이트 공격을 허용한다고 가정하고 있습니다. 그런 경우입니다. 그렇다면 어떻게 다른 파일에서 콘텐츠를 검색 할 수 있습니까?

은 내가 JQuery로드 기능을 사용하여 시도 :
$('#content').load('pages/test_page.php'); 

하지만 동일한 결과

.

이것은 나를 미치게합니다! TIA.

편집 : 제가이 문제를 발견했을 수도 있습니다. AJAX에서 콘텐츠를 가져 오는 php 파일은 require_once을 사용하고 있습니다. 필요한 파일은 동일한 루트 폴더 내의 동일한 서버에 있지만 하나의 디렉터리입니다. 그러나 새로운 문제가 생깁니다. 콘텐츠를 얻지 만 완전히는 아닙니다. 예를 들어, 파일에 나는이 있습니다

Title: <?php echo $details['title']; ?> 

난 단지 첫 글자를 얻고,이 다른 php 내용 I echo 마찬가지이다.

답변

8

allow_url_includeinclude()require(), 당신은 여전히 ​​웹 페이지를 가져 배 HTTP_Request2 모듈 또는 curl 기능을 사용할 수 있습니다에 영향을 미칩니다.

include()을 원격 웹 페이지에 사용하는 것은 "나쁜 습관"으로 간주되어 보안 상 위험 할 수 있습니다. 당신이 include($var); 사용하는 경우 예를 들어, 일부 공격자는 다음 내용으로 문서에 새 파일을 작성 file_get_contents()를 사용 ... http://hacksite.tld 그/그녀가 "주입"할 수 코드

1

걱정을 $ var에 교체하지 않으려면 관리하면 파일에서 include을 검색했습니다. 포함 된 파일은 css, javascript 등을 사용하여 원하는 변경을 위해 준비되었습니다. 이것은 기본적으로 래퍼가 수행하는 작업입니다.

-2

이는 전체 URL을 사용하고 있기 때문입니다. 대신 다음을 시도하십시오.

$('#content').load('test_page.php'); 
관련 문제