假設我想禁止訪問整個域名(+所有包含的子域)的特定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');
}
解決此問題的最佳方法是什麼?
不要在php級別執行此操作。至少在網絡服務器級別執行此操作。或者更好,在防火牆/路由器級別。如果你不想讓別人訪問你的東西,不要讓他們進入前門。 –
我會堅持使用.htaccess。然後你可以用'ErrorDocument 403 forbidden.html'設計一個自定義的403頁面。但是,如果你只想向他們展示一個錯誤,如果他們有足夠的危險來禁止整個網站,也許他們是危險的,以禁止在整個網絡層面(udp,tcp等)。 –
這是有道理的,但我並不總是控制服務器的人,我想確保某些頁面不公開。 –