2012-04-29 2 views
1

У меня есть система входа в систему, которую я пытаюсь сделать максимально безопасной. После десяти неудачных попыток я хочу заблокировать IP-адрес. Как я могу открыть файл в PHP и добавить строку в код блока ip-адресов? Вот мой файл .htaccess:Блокировать IP-адреса автоматически с помощью PHP и htaccess

#Turn on RewriteEngine 
RewriteEngine on 
#Don't allow file indexing pages 
Options -Indexes 
#Follow Symbolic Links 
Options +FollowSymLinks 
#Set default language and charset 
DefaultLanguage en-US 
AddDefaultCharset UTF-8 
#Set the server timezone 
SetEnv TZ America/Vancouver 

#Don't need extention for PHP files 
RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteRule ^([^\.]+)$ $1.php [NC,L] 

#Block bad IP Addresses 
RewriteCond %{REMOTE_ADDR} ^217.172.179.*$ [OR] 
RewriteCond %{REMOTE_ADDR} ^217.172.180.*$ 
RewriteCond %{REQUEST_URI} !/error/blocked.php$ [NC] 
RewriteRule ^(.*)$ /error/blocked.php [R,NC,L] 

Я хотел бы файл PHP, чтобы добавить строку:

RewriteCond %{REMOTE_ADDR} ^IPHERE$ [OR] 

прямо под комментарием Блока плохой IP-адрес.

+0

ip не означает: человек, злоумышленник (или обычный пользователь) будет проходить через диапазон ips. –

+0

Я знаю, что код будет просто блокировать новый ip каждые десять попыток. –

+0

@ethanh: Это звучит не очень мудро. Обычно блокировка IP-адресов не заканчивается (как обычно, пользователи пытаются использовать ваш сайт и терпят неудачу из-за блокировки IP-адресов). –

ответ

2

Я бы не рекомендовал напрямую редактировать файл .htaccess.

Вместо этого у вас есть файл или таблица базы данных, чтобы сохранить все черные списки IP-адресов и протестировать их на PHP, а не на стороне Apache.

+0

Проблема с этим заключается в том, что мой хост не позволяет использовать большую базу данных. Мне очень нужно использовать htaccess. Есть ли другой способ сделать это? –

+0

@ethanh может быть достойным хозяином? – PeeHaa

+0

@Эта проблема с редактированием htaccess, если вы допустили ошибку/синтаксическую ошибку, весь ваш сайт под htaccess отобразит 500 внутренних ошибок сервера. – Kyle

Смежные вопросы