2011-12-24 2 views
0

안녕하세요, 데이터베이스를 업데이트하는 파일이 있습니다. 나는 cron 작업을 위해 이것을 사용하지만 누군가가 다음과 같이이 파일에 접근한다면 작동한다. http://myweb.com/files/file.php웹 서버의 파일에 액세스하도록 사용자를 제한하는 방법은 무엇입니까?

그리고 나는 그 사용자가 데이터베이스에 접근하여 데이터베이스를 엉망으로 만들 수있다. 사용자로부터 숨길 수있는 방법이 있습니까? 그렇지만 편집하여 cron 작업을 실행할 수 있도록 유지 하시겠습니까?

답변

3

웹에 액세스 할 수없는 디렉토리에 보관해야합니다. 코드를 현재 위치에 유지하려면 코드에서 브라우저 또는 크롤러 (user-agent, referrer 등 사용)에서 호출되고 브라우저 또는 브라우저에서 호출되는지 확인하기 위해 추가 할 수 있습니다 크롤러가 오류 메시지를 표시하면 실행되도록합니다.

+0

모든 웹 사이트 파일이/root/디렉토리에 있으므로이 파일을 바깥에 배치해야합니다. – Ilja

+0

예. 웹에서 액세스 할 수있는 디렉토리가/root/인 경우 동일한 레벨 (예 :/cron /)에 디렉토리를 만들고 그 안에 cron 파일을 저장하십시오. 따라서 웹을 통해 액세스 할 수 없습니다. – Virendra

+0

@SergeiTulentsev 아니요, 브라우저 나 크롤러에서 호출하는 경우 오류 메시지가 표시됩니다. 이것을 반영하도록 솔루션을 업데이트했습니다. – Virendra

1

당신을 도울 수있는 몇 가지 트릭이 있습니다.

  1. REMOTE_IP를 확인할 수 있습니다. localhost가 아니라면 죽어라.

  2. 특수한 'secret'매개 변수가 전달되었는지 확인할 수 있습니다. http://myweb.com/files/file.php?access_key=6rNPY6PhXPDf처럼. 존재하지 않거나 유효하지 않으면 죽습니다.

  3. 장소 (즉, www가 루트 외부에있다) 당신이 당신의 호스팅 환경에 따라 해결 방법

2

,하지만 당신이 필요로하는 경우에 웹을 통해 액세스 할 수있는 폴더에서이 스크립트 http 액세스를 허용하고 Apache 웹 서버를 사용하는 경우 .htaccess 파일에서 액세스 권한을 구성 할 수 있습니다. IIS를 사용하는 경우 파일 관리자 권한을 구성하고 IIS 관리자에서 액세스 권한을 구성하십시오. 그런데 최고의 솔루션과 가장 안전한 방법은 파일을 공용 영역으로부터 멀리두고 파일을 cron 작업에서 직접 호출하는 것입니다.

관련 문제