Блокировать пользовательские IP-адреса с помощью .htaccess или PHP? - PullRequest
5 голосов
/ 19 января 2010

С точки зрения производительности, какой будет лучший способ заблокировать 30 IP-адресов?

A) .htaccess файл

или

B) PHP-код в файле

Ответы [ 5 ]

9 голосов
/ 19 января 2010

Если вы являетесь администратором своего сервера, я бы не использовал ни один из них и запретил бы IP-адреса на уровне брандмауэра - таким образом ни Apache, ни Apache + PHP работать не будут.

Если вы не администратор; ну, .htaccess означает только Apache и никакой PHP для загрузки / компиляции / выполнения; Я предполагаю, что один Apache (т.е. .htaccess) должен требовать меньше ресурсов, чем Apache + PHP.


Другим способом поиска вещей является обслуживание: если вам нужно добавить / удалить IP-адреса из этого списка, каким будет самый простой способ?
(В таком случае, я бы вообще сделал ставку на некоторый код PHP ...)

3 голосов
/ 19 января 2010

Hardware

или

Hardware + OS

или

Hardware + OS + Apache

или

Hardware + OS + Apache + PHP

Понимание стеков должно помочь определить, какой из них будет самым быстрым.

3 голосов
/ 19 января 2010

Я согласен с ответом Паскаля. Но код PHP:

$banned = array('129.168.1.1');
if(in_array($_SERVER['REMOTE_ADDR'], $banned))
{
    die();
}

И .htaccess:

order allow,deny
deny from 192.168.1.1
allow from all

Только для записи.

1 голос
/ 19 января 2010

Почему бы не заблокировать их на аппаратном уровне (маршрутизатор, балансировщик нагрузки, брандмауэр и т. Д.)? - Если это всего 30 блоков, и вам не нужно часто их обновлять.

0 голосов
/ 25 февраля 2017

@ MikeB ответил это отлично.Тем не менее, я использую PHP и .htaccess в сочетании, так как их проще поддерживать, и я могу использовать honeypots для автоматического добавления новых IP-адресов.Пример:

login.php

if ($login_tries > 3) {
    touch('deny/' . $_SERVER['REMOT_ADDR']);
}

.htaccess

# check if ip has been banned
RewriteCond /usr/www/{YOUR_PATH}/deny/%{REMOTE_ADDR} -f
RewriteRule . - [F]

Но основная причина, по которой я это использую, заключается в том, чтобы случайно заблокировать посетителей для разблокировкисами через капчу .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...