{% else-1 %}
bibilink * 19.01
(12 окт 2013, 18:22) (0/0) [0]
Тема закрыта для обсуждения! *
bibilink * 19.01
(12 окт 2013, 18:18) (0/0) [0]
nazar, Что,так крепко укоренился на должности,что тебе всё похер? А в лс ты мне 100 лет \"нужен\"..
bibilink * 19.01
(12 окт 2013, 18:05) (0/0) [0]
nazar, омг,открой глаза! 70% из 100 - флудотемы и темы,где люди не знают элементарного,где к-во постов флудообщения от 50 до 400,при этом раздел вм,дизайна и кодинга пустой либо состоит из тем в максимум 20 - 30 постов. А теперь глянь первый пост и оцени своё Предуприждение.
bibilink * 19.01
(12 окт 2013, 17:54) (0/0) [0]
bejsser, *\'
bibilink * 19.01
(12 окт 2013, 15:33) (0/0) [0]
bejsser, *
bibilink * 19.01
(12 окт 2013, 15:16) (0/0) [0]
Ку всем* и так,все наверное знают что есть разные способы получить пароль жертвы, соответственно и разные способы для этого, самый простой и распространенный это брут (перебор паролей).. сейчас напишем небольшую защиту от подобных атак..
Везде есть форма входа типа логин и пароль, после введения данных из формы они отправляются на файл обработки пусть это будет vhod.php и везде есть стандартная проверка
Если значение логина и пароля находятся в одной колонке и они равны введенным из формы то создаем сессию или куки для етого юзера (авторизируем его)

например..

if (isset($_REQUEST[\'us\']) && isset($_REQUEST[\'ps\']))
{
$user = mysql_real_escape_string($_REQUEST[\'us\']);
$password = mysql_real_escape_string($_REQUEST[\'ps\']);

$proverka = mysql_query(\"SELECT id FROM users WHERE nick = \'$us\' AND pass = \'$ps\' LIMIT 1\"*;
}

//если проверка правдивая, то ок
if (mysql_num_rows($proverka) == true)
{
$user = mysql_fetch_assoc($sqlAut);
//ставим сесси,куки т.д,создаем авторизацию
}
else
{
echo \'Неверные данные\';
}

На данном этапе нас интересует именно else, тоесть когда данные ложны..
Идея состоит в том чтобы дать юзеру всего лишь 5 попыток для свободного ввода логина и пароля,а далее выдавать еще раз формы авторизации с проверочным кодом.. вернемся к else - ошибочному варианту,
для начала создадим еще одну ячейку в табле юзера.. выполним запрос
ALTER TABLE таблица юзера ADD COLUMN vhod INT(11) default 0
//создастся ячейка vhod со значением 0
Идем больше..
При каждой неверной попытке входа,мы должны обновлять ячейку vhod, предварительно считывая ее нынешнее значение в зависимости от введенного логина..

$usi = mysql_query(\"SELECT vhod FROM `users` WHERE `nick` = \'$_REQUEST[us]\' \"*;
while ($openus=mysql_fetch_array($usi))
{
$vhod = $openus[\'vhod\'] + 1; //даем значение переменной, это вытащенная инфа из ячейки vhod у введенного юзера, к ней плюсуется единичка,каждый раз,когда юзер неправильно вводит данные
но уже с проверончым кодом..
{
$chislo=rand(1000,9999); //случайное число
setcookie(\"antibot\", $chislo, time()+60*60*24*30); //ставим это число в куки
echo \'Исчерпан лимит на попытку входа!\';
echo \'<form method=\"POST\" action=\"antibot.php\">
<input type=\"text\" name=\"us\" size=\"11\" value=\" Логин\"/>
<input type=\"text\" name=\"ps\" size=\"6\" value=\" Пароль \"/></br>
Анти-бот \'.$chislo.\' </br> <input name=\"anti\" type=\"text\"><br>
<input type=\"submit\" name=\"antibot\" value=\"Войти\"/>\';
exit(); // запрещаем выполнение дальнейшего выполнения кода
}


mysql_query(\"UPDATEе `users` SET `vhod` = \'$vhod\' WHERE `nick` = \'$_REQUEST[us]\' LIMIT 1\"*; //это обновление ячейки , если ее значение еще не достигло 5 - попыток входа
//чистим куки,сессии
echo \'Неправильный Логин или Пароль!\';
die();

Отправляем на проверку в antibot.php предварительно создав этот файл

<?php
require \'путь к файлу подключки бд\';

if (isset($_REQUEST[\'us\']) && isset($_REQUEST[\'ps\']) && isset($_REQUEST[\'antibot\']))
{
$user = mysql_real_escape_string($_REQUEST[\'us\']);
$ps = mysql_real_escape_string($_REQUEST[\'ps\']);

$sqlAut = mysql_query(\"SELECT id FROM users WHERE nick latuser = \'$us\' AND pass = \'$ps\' LIMIT 1\"*;
}

if (mysql_num_rows($sqlAut) != false)
{
setcookie(\"antibot\", $chislo, time()+60*60*24*30);
if ($_COOKIE[\'antibot\'] != $_POST[\'anti\'])
{
echo \'Не верный проверочный код!\';
exit();
}

echo \'OK! Данные подтверждены! Вы не бот\';
mysql_query(\"UPDATE `users` SET `vhod` = \'0\' WHERE `nick` = \'$_REQUEST[us]\' LIMIT 1\"*; //обнуляем ячейку
}

else
{

echo \'Данные не подтверждены!\';
}

}



?>

В общем думаю кодері расберутся..
  • 1 из 1