2009-11-09 3 views

답변

3

저는 AJAX Sane Origin Policy를 사용하는 PHP 프록시를 생각하고 있습니다. 실제 HTTP 프록시가 필요한 경우 프로세스가 훨씬 복잡합니다.

간단한 의사 코드 :

  • 요청에서 URL을 얻을 수 (예 : $_POST['url']에서) 여러 서버가있는 경우
  • 는, 예를 들어,이 localhost로 요청을 (또는 개인 서브넷에없는 (유효하지 않은 URL을 거부))
  • (선택 사항) 스크립트의 캐시를 확인하고 해당되는 경우 캐시 된 응답을 반환하십시오.
  • 예를 들어 대상 URL을 요청하십시오. 컬
  • (선택 사항) 캐시 응답 (해당되는 경우)
  • 반환 응답

참고 :이 단순한 형태로, 당신은 누군가가 당신의 PHP 프록시를 통해 인터넷에있는 모든 URL에 액세스 할 수 있도록되어있다; 일부 액세스 제어가 구현되어야합니다 (예 : 프록시 사용 대상에 따라 로그인 한 사용자 만 해당).

3

생각보다 많은 작업입니다. 간단히 원격 웹 페이지를 호출하고 그 내용을 표시하는 것만으로는 충분하지 않습니다 (가장 간단한 경우 readfile('http://google.com')). html 문서의 URL을 자신의 프록시를 다시 가리 키도록 다시 작성해야합니다. https를 처리 할 수 ​​있어야합니다. (대상 페이지에 https가 필요한 경우 민감한 데이터에 대한 일반 액세스를 허용 할 것입니다) 및 기타 (부분적으로는 RFC 3143에 컴파일 됨).

아마도 아파치의 mod_proxy에 모두 필요한 것이 있습니다.하지만 실제로 직접 작성하고 싶다면 다른 프로젝트의 소스 코드 (예 : php-proxy)를 공부하면 더 많은 정보를 얻을 수 있습니다.