2010-05-09 4 views
2

curl과 같은 회람식 응용 프로그램과 함께 호출하지 않으면 어떻게 PHP 스크립트에 대한 액세스를 금지합니까? 나는 웹 응용 프로그램에서 일하고 있으며 cron 스크립트를 사용하여 서비스를 실행합니다. 나는 파일 경로가 아닌 URL을 사용해야하므로 codeigniter를 사용하고 있습니다.curl과 같은 회람식 응용 프로그램에서 호출하지 않으면 php 스크립트에 대한 액세스를 차단하는 방법

답변

1

이 아닌 직접 답변을하는 동안, 나는이 CodeIgniter의 라이브러리 근본적인 문제를 해결할 것이라고 생각 :

CodeIgniter CLI Library

나는 그게 내가에서 가져온 된 CI 프로젝트에 사용되는 라이브러리 믿습니다. 잘 작동한다. 명령 줄에서 그냥 :

php cli.php controller action urlseg1 urlseg2 ... 
+0

감사합니다. Tim –

0

HTTP 인증을 사용하십시오.

사용자 에이전트 HTTP 헤더로 컬을 인식 할 수 있지만 안전하지 않습니다. 누구든지 이러한 헤더를 사용하거나 컬을 사용하여 스크립트에 액세스 할 수 있습니다.

(편집) 요청의 IP 주소를 사용할 수도 있습니다. cron의 컬 요청은 아마도 127.0.0.1을 갖습니다. 귀하의 웹 사이트가 동일한 서버에서 실행되는 역방향 프록시를 사용하지 않는 한, 누구든지이 주소로 요청을 할 수 없어야합니다. 이것은 100 % 안전하지 않습니다 (예 : 공유 웹 호스팅).하지만 충분히 안전 할 수 있습니다.

BTW. 왜 CRON에서 직접 PHP 스크립트를 실행하지 않습니까? 그러면 웹에 액세스 할 필요가 전혀 없습니다.

+0

나는 codeigniter를 사용하여 스크립트가 실제로 파일로 존재하지 않으므로 url을 통해 실행되는 함수입니다. –

0

이것은 아마도 최선의 해결책은 아니지만 몇 초 내에 구현할 수 있습니다.

cURL POST를 사용하고 암호를 POST 변수 중 하나로 전달하십시오. 스크립트 랩퍼에서 암호가 맞는지 확인하고, 그렇다면 파일을 실행하십시오.

관련 문제