2009-08-29 4 views
2

데이터베이스에 연결할 때 include('connect.php') 연결할 문서. 이제 좀 더 안전하게하고 싶습니다. connect.php을 포함시키려는 항목이 내 도메인에 있는지 확인할 수 있습니까? 마찬가지로 : 안전한 데이터베이스 로그인 변수를 포함

if($_SERVER["HTTP_REFERER"] == "mydomain.com"){ 
    $link = mysql_connect("localhost","user","password"); 
    mysql_select_db("dbname"); 
} 

그리고 이것이 가능하다면, 어떻게 $_SERVER["HTTP_REFERER"] == mydomain.com$_SERVER["HTTP_REFERER"]mydomain.com/page.php를 반환 할 수 있음을 확인합니까

?

답변

5

이것은 PHP에서 해결해야 할 문제가 아닙니다. 누군가가 그 파일을 포함 할 수 있다면, 서버 보안은 이미 엉망이됩니다. 웹 서버가 원시 PHP 파일을 제공하지 못하도록하고 OS 보안 및 사용자 설정 작업을 통해 권한이없는 사용자/프로세스가 파일을 포함하지 못하게합니다. 누군가가 파일에 접근 할 수 있도록 파일에 접근 할 수 있다면 파일을 읽을 수있는 충분한 액세스 권한을 가지며,이 경우 파일에 넣은 보안 조치는 실행되지 않습니다.

요약 : 걱정하지 마십시오. :)

편집 :이 같은

뭔가 :

RewriteEngine On 
RewriteRule ^connect.php /index.php [R] 

이 주제에 대한 myriad of questions 통해보고, 힘든 당신의 내역과 변경 될 수 있습니다.

+0

확인. 하지만 어쨌든 mybomain.com/connect.php로 직접 이동 한 사용자가 index.php로 리디렉션되기를 바랍니다. – Johan

+0

가장 좋은 방법은 사용자가 접근 할 수없는 라이브러리 파일을 자신의 디렉토리에 넣고'.htaccess' 파일로 보호하는 것입니다. – deceze

+0

예, 지금은 알지만이 프로젝트를 시작할 때가 아닙니다. 너무 늦었습니다. – Johan

1

거꾸로하고있는 것 같습니다.

connect.php을 보호하는 가장 쉬운 방법은 하나의 폴더를 위쪽으로 (웹 루트 외부) 이동하고 include('connect.php') 대신 include('../connect.php')을 사용하는 것입니다. 그저 그렇게하고 안전하다면 (적어도 connect.php에 관해서).

HTTP_REFERER는 보안과 관련이 없습니다. 확인을하면 방문자가 요청한 페이지 대신 Database connection error을 수신하게됩니다. 그 때마다 실패합니다. (구글과 공동 포함)

  1. 누군가가 다른 사이트에 링크를 귀하의 사이트에 제공을
  2. 누군가가 브라우저에 사이트 클릭에 관해서 즐겨 찾기
  3. 누군가에 관해서 당신의 주소 표시 줄에 주소를 직접 입력하는 사이트

어쨌든 나는 이것이 당신이 원할지도 모른다라고 생각하지 않습니다.

관련 문제