2013-02-04 3 views
1

나는 constants.php이라는 PHP 스크립트를 가지고 있는데, 내 MySQL 정보 등과 같이 많은 가치있는 데이터를 가지고있다.내 파일 시스템 외부에 PHP 스크립트를 포함시킬 수 있습니까?

내 컴퓨터 외부에서 스크립트에 액세스 할 수 있습니까? 다음을 사용합니다. include http://www.fakewebsite.com/config/constants.php

+0

왜? mysql 데이터베이스 정보를 자유롭게 액세스 할 수있는 원격 서버에 저장하는 것은 매우 불안정한 것 같습니다. – andy

답변

2

음, 그렇습니다.

: 파일 constants.php의 출력에 액세스 할 수 있습니다 (그러나 대부분 공백 임).

아니요 : 사용자가 변수에 액세스 할 수 없습니다. PHP가 파싱되기 전에 만 액세스 할 수 있습니다.

+0

'아니오 '는 PHP 설정에 따라 다릅니다. '예'일 수도 있습니다. "012 문서를 읽을 수 있습니다"에 대해 명시 적으로 No. – Mahdi

0

예, 스크립트에 액세스 할 수 있으면 스크립트에 스크립트를 포함 할 수 있습니다.

2

의이 the docs을 읽어 보자 : "URL fopen을 래퍼는"(그들이 기본 구성에) PHP에서 활성화

경우 HTTP를 통해 URL을 (사용하여 포함 할 파일을 지정할 수 있습니다 또는 다른 지원되는 래퍼 - 로컬 경로 이름 대신 지원되는 프로토콜 및 래퍼의 프로토콜 목록 참조). 대상 서버가 대상 파일을 PHP 코드로 해석하면 변수 은 URL 요청 문자열 (HTTP GET 포함)을 사용하여 포함 된 파일로 전달 될 수 있습니다. 이것은 엄밀히 말하면 파일을 포함하고 상위 파일의 변수 범위를 상속받는 것과 같은 것을 말하는 것입니다 ( ). 스크립트는 실제로 원격 서버에서 실행되고 결과가 로컬 스크립트에 포함됩니다.

실제로 외부 파일을로드 할 수 있습니다 (관리자가 허용하는 경우). 그러나, 귀하의 경우에 유용 할 것입니까? 웹 브라우저에서 http://www.fakewebsite.com/config/constants.php을 열고 "소스보기"메뉴를여십시오. 거기에서 무엇을 보더라도 PHP 스크립트가 볼 것입니다 (빈 페이지 일 가능성이 높습니다).

적어도 마지막으로 ... 왜 모든 가치있는 민감한 데이터를 게시 할 것, 원격 서버가 또는이 PHP 코드를 생성하는 PHP 스크립트를 포함 *.php 파일을 실행하지로 구성되어 있음을 가정하면 인터넷?

+0

+1이라고해서는 안됩니다. :-) – SDC

+1

BTW, 나는 가혹하지 않은 친절하려고 노력했다 :) –

1

URL에 공개적으로 액세스 할 수 있으면 예를 들어 누구나 스크립트를 포함하여 URL에서 읽을 수 있습니다.

그러나 여기서 핵심 부분은 출력constants.php이고 파일 자체는 액세스하지 않는다는 것입니다. 그들은 웹 브라우저에서 파일에 액세스 할 때와 똑같은 출력을 얻습니다.

할 수없는 것은 URL을 호출하여 실제 PHP 코드를 포함시키는 것입니다. URL은 PHP 파일에 직접 연결되지 않습니다. 그것은 웹 서버에 대한 연결입니다. 그런 다음 웹 서버는 PHP 파일을 처리하고 출력을 제공합니다. 출력을 보내기 전에 웹 서버가 PHP 파일을 처리하는 동안 PHP 코드는 안전합니다. 그것은 URL을 통해 볼 수 없습니다.

다른 방법으로 접근 할 수도 있지만 그렇게 할 수는 없습니다.

+0

+1 명확한 문구와 요점 –

관련 문제