2014-07-17 4 views
0

특정 IP 주소가 전체 도메인 이름 (+ 포함 된 모든 하위 도메인)에 액세스하지 못하게하려고한다고 가정합니다.. 처음에 나는 htaccess로 파일에 다음 줄을 추가하기 위해 다음 코드로 시작 :IP 주소를 제한하는 가장 좋은 방법은 무엇입니까?

$info = 'Order Deny,Allow 
Deny from' . IPtoBlock(); 

if (getIP()){ 
    $htaccess = fopen('.htaccess', 'r+'); 
    fwrite($htaccess, $info); 
    fclose($htaccess); 
} 

하지만 뭔가 다른 사용자를 리디렉션보다 더 효과적이다? 결국 그는 즉각적인 리디렉션을 통해 서버에 대한 요청을 처리 할 수 ​​있습니다.

$deny = array('192.168.1.0', '192.168.1.1', '192.168.1.2'); 
if (in_array ($_SERVER['REMOTE_ADDR'], $deny)) { 
    header("location: http://www.google.com/"); 
} 

또는 단순히 페이지를 죽입니까?

$deny = array('192.168.1.0', '192.168.1.1', '192.168.1.2'); 
if (in_array ($_SERVER['REMOTE_ADDR'], $deny)) { 
    die('Access restricted'); 
} 

이 문제에 대한 최선의 방법은 무엇입니까? 당신의 .htacces 파일에서

+0

PHP 레벨에서는 실행하지 마십시오. 최소한 웹 서버 수준에서 해보십시오. 또는 방화벽/라우터 수준에서 더 나은 결과를 얻을 수 있습니다. 다른 사람이 내 물건에 액세스하는 것을 원하지 않는다면, 심지어 그들이 현관에 들지 못하게하십시오. –

+0

.htaccess를 사용하고 싶습니다. 그런 다음 'ErrorDocument 403 forbidden.html'을 사용하여 맞춤 403 페이지를 디자인 할 수 있습니다. 그러나 만약 당신이 그들에게 오류를 보여주고 싶다면, 전체 웹 사이트를 차단하기에 충분히 위험하다면, 전체 네트워크 수준 (udp, tcp 등)을 차단하기에 충분히 위험 할 수도 있습니다. –

+0

그건 의미가 있지만 항상 서버를 제어하는 ​​것은 아니며 특정 페이지를 공개적으로 사용할 수 없도록하고 싶습니다. –

답변

2

: IP를 123.123.123.123와

Order Allow,Deny 
Allow from all 
Deny from 123.123.123.123 

사용자는 403

이 있고 특정 페이지로 리디렉션 할 경우, 추가합니다 :

ErrorDocument 403 /forbidden.php 

편집 : htaccess의 텍스트 파일에서 금지 IP를 보려면 여기를보세요 : Ban IPs from text file using htaccess

+0

.htaccess의'fwrite()'가 좋은 아이디어라는 것을 의미합니까? 이후 나는 그것을 동적으로 만들고 수동으로 IP를 추가하지 않기를 원합니다. –

+0

여기 좀보세요 http://stackoverflow.com/questions/13008242/ban-ips-from-text-file-using-htaccess –

0

:

Order Deny,Allow 
Deny from all 
Allow from xx.xx   // This will be your local IP address 
Allow from yy.yy.yy.yy  // Your server IP address 

이 시나리오에서 제외하고, 아무도 당신의 웹 사이트에 액세스 할 수 없습니다. 주르 .htaccess에서

0

최상의 시도는 웹 서버에 도달하기 전에이 시도를 차단합니다. 즉, iptables (방화벽과 같은 수준의 차단 또는로드 밸런서를 사용할 수없는 경우 차단)를 의미합니다.

관련 문제