Я хочу реализовать бан по IP, а так же бан по аккаунту.
Собираюсь реализовать через бд MySQL. Хотел бы узнать какие недостатки мною выбранного метода.
И как мне лучше реализовать. Может бан по IP на файлах, а бан по аккаунту в бд.
Прошу совета тех, у кого есть опыт!
Отслеживать
51.2k 85 85 золотых знаков 264 264 серебряных знака 505 505 бронзовых знаков
задан 1 июл 2011 в 20:41
129 4 4 серебряных знака 23 23 бронзовых знака
5 ответов 5
Сортировка: Сброс на вариант по умолчанию
На уровне обращения к черному списку, система банов предполагает, что читаться этот самый список будет намного чаще, чем туда будет что-то записываться. СУБД используют самые эффективные алгоритмы для поиска информации в индексированных списках. Это особенно важно, если черный список будет очень большим.
Плюс, предполагаю что движок вашей системы работает с MySQL, аккаунты хранятся так-же, в базе. С БД работа уже налажена, и логичнее всего туда-же прикручивать остальную функциональность.
Как забанить человека по IP!!!Реально работает!!!
Если черный список будет не очень большим, то можно воспользоваться и файлами. Но, желательно, хранить его в виде сериализованного массива (функция serialize()), обрабатываться будет быстрее. Плюс, с файлами вы работаете напрямую, а с базой через СУБД.
UPD: Для работы с IP в MySQL есть удобные функции INET_NTOA() и INET_ATON() . Они преобразовывают строку с IP в число, и обратно. Список чисел обрабатывается быстрее чем список строк.
Источник: ru.stackoverflow.com
Как через .htaccess заблокировать доступ к файлу на веб-сервере по IP
Рекомендуемый хостинг:
Зачастую возникает необходимость заблокировать непрошеным гостям доступ к какому-то файлу или даже целой папке на Вашем сайте. Например, к админ-панели или каким-то важным файлам и папкам, которые должны быть доступны только хозяину сайта, но пароль на них ставить нет необходимости.
Это, на самом деле, задача на «раз-два». : )
Как заблокировать доступ ко всему сайту
Для блокировки нам понадобится создать всего 1 файл с именем .htaccess в папке с защищаемыми файлами. В него при помощи любого подходящего текстового редактора (например, того же «Notepad2») впишите в начало файла следующие строки:
Order Allow,Deny Deny from Блокируемый_IP_адрес Allow from all
Как заблокировать доступ к одному или нескольким файлам по IP
# Запрет доступа по IP адресу к файлу file.php
Order Deny,Allow Deny from all Allow from Ваш_IP_адрес
Давайте разберем написанное построчно, чтобы было понятно — что же мы делаем.
даёт понять системе, что правила, которые находятся внутри требуется применять только при попытке доступа к файлу с именем file.php
Решение бана ip адреса — Gta Online
Order Deny,Allow
определяет порядок действий при блокировке. То есть, сначала применяются все директивы, касающиеся блокировки (deny), а потом уже всё, что касается разрешения доступа (allow).
Дальше мы запрещаем доступ к файлу отовсюду:
Deny from all
(кстати, если нужно запретить только с отдельных IP — Deny from Запретный_IP-адрес)
…и разрешаем его только с нашего IP («Ваш_IP-адрес» заменяем на нужный IP):
Allow from Ваш_IP-адрес
Всё, блокировка по IP установлена. Теперь любая попытка обращения к указанному файлу с чужих IP-адресов будет приводить к ответу 403 «Access denied»
Полезные примечания
Часто бывает, что нужно ограничить доступ ко всем файлам с каким-то одним расширением. Для этого используется та же конструкция, в которую нужно внести минимальные изменения. А именно первую строку сделать вот такой:
— здесь звёздочка * указывает на то, что имя файла может состоять из любого количества любых знаков а после точки, собственно, вписываем наше расширение, доступ к которому требуется блокировать.
В результате, содержимое файл .htaccess будет выглядеть вот так:
Order Deny,Allow Deny from all Allow from Ваш IP адрес
Если расширений несколько — пишем их через разделитель. Вот так:
В следующей заметке я расскажу как защитить паролем папку и, при необходимости, дать беспрепятственный доступ к отдельным её файлам.
Источник: sysmasters.net