Обнаружил дефект не знаю ка его устранить если набрать http://adress.info - то захожу в админку если браузер услужливо подставлет www и в строке адерс выглядит так http://www.adress.info - то открывается пустая страница. форма для авторизации HTML: <form method="post" action="index.php" > ........................... <input type="submit" name="submit2" value="Enter" ></td> </form> возможно проблема тут: PHP: if (!preg_match ("/http\:\/\/adress\.info/", $_SERVER['HTTP_REFERER'])) exit(); в мануале ничего не нашел. Кто может подскажите
Рекомендуют не adress.info, а example.com, example.org/net HTTP_REFERER поищи в гугле что это, должно даже на сайт php_net вести.
Ну да, в этом. А зачем это вообще надо? Типа защита от роботов? Так робот запросто HTTP_REFFER тебе подсунет. И, кстати, HTTP_REFFER - заголовок необязательный, да и генерируется клиентом, и везде говориться, что доверять ему нельзя
Да, в мануале, прям черным по белом так и написано - доверять нельзя.... так что убрать эту строку if(!preg_match... ? а чем заменить?
@viktor72, тут вам пытаются объяснить все, что если у вас в скрипте написана какая-то строчка, вы должны знать, зачем она. Если защита от роботов, то ставится капча, к примеру, от гугла, в сети полно мануалов, как её поставить.
предполагается защита от робота, который перебирает пароль не с браузера, не с моего сайта... убрать жалко... удалять каждый раз в адресной строке www , как то не профессионально. Есть альтернативы , кроме капчи? --- Добавлено --- ой не люблю капчу... если нет других способов, то придётся её ставить... но я думаю не надо обьяснять как утомительно разгадывать каракули которые выдает на капча - "на, разгадывай!". Пока что у меня три варианты : 1. удалить защитку, 2. поставить капчу, или 3. удалять каждый раз www . пока не знаю что делать.
В новой капче от гугла надо просто ткнуть в галку "Я не робот". Чаще всего этого достаточно. Иногда, если гугл подозревает комп в спамерстве, выдаются красивые картинки с предложением выбрать все пироги, всех кошек, все макароны и т.п. --- Добавлено --- А ещё, вам говорили, но вы не потяните - просто можно после третьей неудачной попытки на час запретить авторизацию --- Добавлено --- Кстати, по идее, можно www необязательное вставить в вашу регулярку. Но тот, кто пишет ботов, не дурак, и подсунет вам HTTP_REFFER просто на всякий случай --- Добавлено --- Вот такая регулярка пропустит www. Но ещё раз. Защищает только от совсем школьников. Код (Text): "/http\\:\\/\\/(www\\.){0, 1}adress\\.info/"
у google reCaptcha давно нет каракуль, там либо просто галочку поставить или выбрать картинки на которых пикап или клоуны. Обычно админку можно по IP закрыть ещё пароль только раз в 1 минуту принимать, так же сделай админку по не понятному пути /admin_hohoho
попробовал, не пускает если просто http://adress.info --- Добавлено --- не ругайтесь сильно, но у меня форма для входа стоит на главной странице. со мной работает ещё три сотрудника, вечно ничего не понимающие, забывающие и т.д... поэтому я для них и делаю как можно проще... поэтому не хочу делать отдельную страницу для входа да ещё и галочку , которая будет травмировать их психику и портить дизайн сайта ...мда... --- Добавлено --- да я с помощью интернета навоял тут на тему блокировки после третего раза: PHP: if (!$_SESSION['bruteforce']) { $_SESSION['bruteforce'] = 0; $_SESSION['bruteforce_t'] = time (); $_SESSION['bruteforce_ip'] = $_SERVER['REMOTE_ADDR']; } $_SESSION['bruteforce']++; if ((time() - $_SESSION['bruteforce_t']) > 20 ) unset ($_SESSION['bruteforce']); if (!empty ($user_data [3])) { if ( (time() - $user_data [4]) < 20 ) { exit ("Извините за неудобство. Обновите страницу через 20 секунд"); } else { $user_data = mysql_query ("UPDATE users SET ip='', ip_del_time = '' WHERE login = 'ddddd'"); if (!$user_data) exit ("#112"); unset ($_SESSION['bruteforce']); } } if ($_SESSION['bruteforce'] > 3) { $user_data = mysql_query ("UPDATE users SET ip='$_SESSION[bruteforce_ip]', ip_del_time = '$_SESSION[bruteforce_t]' WHERE login ='ddddd'"); exit("Извините за неудобство. Обновите страницу через 20 секунд"); } он блокирует даже если не три попытки а просто что то не понравилось
стикер на монитор решит проблему если из cookie удалить идентификатор сессии, значит обойдут твой лимит?
не проверяй реферера вообще, это бессмысленная хрень. ты знаешь, на самом деле можно ещё проще. У меня несколько лет работал сайт, у которого админка была по адресу /edit, там не было пароля. Логина тоже не было. Сразу править страницы можно было прям пхп код. За эти несколько лет ничего страшного не произошло. =) Вот так.
Где-то уже делился. Повесьте админку на поддомен с «хитрым», но необязательно сильно сложным именем. С www – вообще тупняк – нужен редирект на без www, хотя для поддоемена можно полностью от www отказаться.