VasyaKrol
Участник
- Сообщения
- 22
- Реакции
- 0
По фильтрации понятно. Статейку с хабра я посмотрел, сейчас разбираюсь. А вот с файлом login чего делать. Я не представляю где там можно ошибиться. Вот могу привести код файла (уже измененного по Вашему принципу):wh1skas написал(а):Фильтруйте все входящие данные на сайт! В первую очередь проверяем POST и GET-запросы.
Если есть REQUEST, то надо проверять для чего он, и в случае тоже фильтровать.
<h2>Авторизация</h2>
<?PHP
if(isset($_SESSION["admin"])){ Header("Location: /?menu=preved_medved"); return; }
if(isset($_POST["admlogin"])){
$db->Query("SELECT * FROM db_config WHERE id = 1 LIMIT 1");
$data_log = $db->FetchArray();
if(strtolower($_POST["admlogin"]) == strtolower("admin") AND strtolower($_POST["admpass"]) == strtolower("admin") ){
$_SESSION["admin"] = true;
Header("Location: /?menu=preved_medved");
return;
}else echo "<center><font color = 'red'><b>Неверно введен логин и/или пароль</b></font></center><BR />";
}
?>
<form action="" method="post">
<table width="300" border="0" align="center">
<tr>
<td><b>Логин:</b></td>
<td align="center"><input type="text" name="admlogin" value="" /></td>
</tr>
<tr>
<td><b>Пароль:</b></td>
<td align="center"><input type="password" name="admpass" value="" /></td>
</tr>
<tr>
<td style="padding-top:5px;" align="center" colspan="2"><input type="submit" value="Войти" /></td>
</tr>
</table>
</form>
<?PHP
if(isset($_SESSION["admin"])){ Header("Location: /?menu=preved_medved"); return; }
if(isset($_POST["admlogin"])){
$db->Query("SELECT * FROM db_config WHERE id = 1 LIMIT 1");
$data_log = $db->FetchArray();
if(strtolower($_POST["admlogin"]) == strtolower("admin") AND strtolower($_POST["admpass"]) == strtolower("admin") ){
$_SESSION["admin"] = true;
Header("Location: /?menu=preved_medved");
return;
}else echo "<center><font color = 'red'><b>Неверно введен логин и/или пароль</b></font></center><BR />";
}
?>
<form action="" method="post">
<table width="300" border="0" align="center">
<tr>
<td><b>Логин:</b></td>
<td align="center"><input type="text" name="admlogin" value="" /></td>
</tr>
<tr>
<td><b>Пароль:</b></td>
<td align="center"><input type="password" name="admpass" value="" /></td>
</tr>
<tr>
<td style="padding-top:5px;" align="center" colspan="2"><input type="submit" value="Войти" /></td>
</tr>
</table>
</form>
Значения логина и пасса естественно вставлял другие, все равно происходит описанное в посте выше.
Если не трудно гляньте плиз. Может есть в коде какая заглушка от такого метода. Я с пхп только еще начинаю знакомство, многих принципов работы кода еще не знаю. Вобщем прошу помочь...
ты про это?VasyaKrol написал(а):По фильтрации понятно. Статейку с хабра я посмотрел, сейчас разбираюсь. А вот с файлом login чего делать. Я не представляю где там можно ошибиться. Вот могу привести код файла (уже измененного по Вашему принципу):
<h2>Авторизация</h2>
<?PHP
if(isset($_SESSION["admin"])){ Header("Location: /?menu=preved_medved"); return; }
if(isset($_POST["admlogin"])){
$db->Query("SELECT * FROM db_config WHERE id = 1 LIMIT 1");
$data_log = $db->FetchArray();
if(strtolower($_POST["admlogin"]) == strtolower("admin") AND strtolower($_POST["admpass"]) == strtolower("admin") ){
$_SESSION["admin"] = true;
Header("Location: /?menu=preved_medved");
return;
}else echo "<center><font color = 'red'><b>Неверно введен логин и/или пароль</b></font></center><BR />";
}
?>
<form action="" method="post">
<table width="300" border="0" align="center">
<tr>
<td><b>Логин:</b></td>
<td align="center"><input type="text" name="admlogin" value="" /></td>
</tr>
<tr>
<td><b>Пароль:</b></td>
<td align="center"><input type="password" name="admpass" value="" /></td>
</tr>
<tr>
<td style="padding-top:5px;" align="center" colspan="2"><input type="submit" value="Войти" /></td>
</tr>
</table>
</form>
Значения логина и пасса естественно вставлял другие, все равно происходит описанное в посте выше.
Если не трудно гляньте плиз. Может есть в коде какая заглушка от такого метода. Я с пхп только еще начинаю знакомство, многих принципов работы кода еще не знаю. Вобщем прошу помочь...
PHP:
75:
$title = $func->TextClean($_POST["title"]);
80:
$db->Query("INSERT INTO db_news (title, news, date_add) VALUES ('$title','$text','".time()."')");
SQL Injection!
80:
$db->Query("INSERT INTO db_news (title, news, date_add) VALUES ('".mysql_real_escape_string($title)."','$text','".time()."')");
FIXED
VasyaKrol
Участник
- Сообщения
- 22
- Реакции
- 0
Нет, я имел ввиду про способ спрятать лог и пасс от админки в файл логин. Но с этим я уже разобрался.wh1skas написал(а):ты про это?
PHP:75: $title = $func->TextClean($_POST["title"]); 80: $db->Query("INSERT INTO db_news (title, news, date_add) VALUES ('$title','$text','".time()."')"); SQL Injection! 80: $db->Query("INSERT INTO db_news (title, news, date_add) VALUES ('".mysql_real_escape_string($title)."','$text','".time()."')"); FIXED
Я кое где там в других файлах адрес админки не поменял. Сейчас переделал и все заработало.
А вот с этим примером кстати что не так.
Я в статье той вычитал, что ет вроде есть смешной способ экранирования. Но суть то в том, что у меня вообще после этого метода в базу пустое значение передается. Не в курсе почему..?
Как и чем ты фильтруешь?wh1skas написал(а):Фильтруйте все входящие данные на сайт! В первую очередь проверяем POST и GET-запросы.
Если есть REQUEST, то надо проверять для чего он, и в случае тоже фильтровать.
mysql_real_escape_string не выход, далеко не выход.wh1skas написал(а):попробуй так:
PHP:$title = $func->TextClean($_POST["title"]); mysql_real_escape_string($title); $db->Query("INSERT INTO db_news (title, news, date_add) VALUES ('$title','$text','".time()."')");
powerful
Участник
- Сообщения
- 7
- Реакции
- 0
всё равно доступ к папке надо закрыть и на все вложения а то у меня был взлом такого рода.kvozimir написал(а):не правильно сделал
файлы которые в админке в принципе защищать не нужно,потому что это админка и в нее не попадут,а если и взломают то взломают через другие дыры,ну а так то там кажется дело в фильтрации
remmodulek
Участник
- Сообщения
- 20
- Реакции
- 1
Если стока дыр и уязвимостей ,тогда как существуют эти фермы в инете?Их бы тогда все разом ломанули.В этой теме я уже прочитал,что есть умельцы,которые накрутку делать умеют серебра и ещё мелкие сумы угонять с кошельков для незаметности!Вот такой он дырявый скрипт оказывается за 20 баксов в базе даных все пароли в открытом виде-всё для хакера.
Вы ошибаетесь.) Это просто в паблике в основном лежат скрипты, в которых специально делают дыры и шёлы, чтобы в последствии сливать деньги., правда в моей практике, было много случаев, когда и покапают дорогие скрипты с дырами.)remmodulek написал(а):Если стока дыр и уязвимостей ,тогда как существуют эти фермы в инете?Их бы тогда все разом ломанули.В этой теме я уже прочитал,что есть умельцы,которые накрутку делать умеют серебра и ещё мелкие сумы угонять с кошельков для незаметности!Вот такой он дырявый скрипт оказывается за 20 баксов в базе даных все пароли в открытом виде-всё для хакера.
Вернёмся к пабликам: Когда вы их скачиваете, вам же никто не даёт гарантии, что вас не взломают? Я к примеру давно решил проблему с (#1) накруткой серебра(В основном накручивают на играх, не просчитанных с теорией вероятности - напёрстки, орёл или решка, кости и тому подобные,. различными методами вроде больших чисел и т.д. Так же могут набивать на кнб, если у вас стоит бонус при регистрации... то там мульты и дело случая) Пароли я тоже (#2)шифрую при помощи собственного алгоритма, а также заставляю пользователей придумать пароль не менее 7 символов, для их же безопасности. В любом случае, если кулц_хакер попадёт в бд, он нифига не получит т.к. проверка пароблей происходит методом шифровки введённого пароля и сравнения с тем шифром, что находится в бд. Фактически дешифровать хэш созданный при помощи моего алгоритма не возможно,. это конечно круче соли с мд5, но тут минус в размере хранимого хэша, очень он уж большой получается. Всегда советую более менее посвящённым владельцам скриптов переписывать названия (#3)стандартных классов php и вообще менять названия папок файлов, если школо_взломщик(самые лютые и популярные взломщики ферм) увидит нестандартность скрипта, то скорее всего он подумает, что-то вроде: "Блин, скрипт не стандартная FF, не вытащить на пиво((".
думаю я ясно дал понять картину происходящего
dima2010
Участник
- Сообщения
- 60
- Реакции
- 6
нашел payment.php
<a href="" id="link"><img src="http://farm-sell.ru/img/copyright1.png" id="pict" border=0
onMouseOver="changeImg('http://farm-sell.ru/img/copyright.png', 'http://farm-sell.ru/')"
onMouseOut="changeImg('http://farm-sell.ru/img/copyright1.png', '')" ></a>
</a></center> прописанно в самом низу
<a href="" id="link"><img src="http://farm-sell.ru/img/copyright1.png" id="pict" border=0
onMouseOver="changeImg('http://farm-sell.ru/img/copyright.png', 'http://farm-sell.ru/')"
onMouseOut="changeImg('http://farm-sell.ru/img/copyright1.png', '')" ></a>
</a></center> прописанно в самом низу
Это не совсем дыраdima2010 написал(а):нашел payment.php
<a href="" id="link"><img src="http://farm-sell.ru/img/copyright1.png" id="pict" border=0
onMouseOver="changeImg('http://farm-sell.ru/img/copyright.png', 'http://farm-sell.ru/')"
onMouseOut="changeImg('http://farm-sell.ru/img/copyright1.png', '')" ></a>
</a></center> прописанно в самом низу
himik
Участник
- Сообщения
- 230
- Реакции
- 32
Правильней будет "Это совсем не дыра"AriCosmo написал(а):Это не совсем дыра
Remdev
Участник
- Сообщения
- 77
- Реакции
- 19
А ссылку на проект можно получить?AriCosmo написал(а):Вы ошибаетесь.) Это просто в паблике в основном лежат скрипты, в которых специально делают дыры и шёлы, чтобы в последствии сливать деньги., правда в моей практике, было много случаев, когда и покапают дорогие скрипты с дырами.)
Вернёмся к пабликам: Когда вы их скачиваете, вам же никто не даёт гарантии, что вас не взломают? Я к примеру давно решил проблему с (#1) накруткой серебра(В основном накручивают на играх, не просчитанных с теорией вероятности - напёрстки, орёл или решка, кости и тому подобные,. различными методами вроде больших чисел и т.д. Так же могут набивать на кнб, если у вас стоит бонус при регистрации... то там мульты и дело случая) Пароли я тоже (#2)шифрую при помощи собственного алгоритма, а также заставляю пользователей придумать пароль не менее 7 символов, для их же безопасности. В любом случае, если кулц_хакер попадёт в бд, он нифига не получит т.к. проверка пароблей происходит методом шифровки введённого пароля и сравнения с тем шифром, что находится в бд. Фактически дешифровать хэш созданный при помощи моего алгоритма не возможно,. это конечно круче соли с мд5, но тут минус в размере хранимого хэша, очень он уж большой получается. Всегда советую более менее посвящённым владельцам скриптов переписывать названия (#3)стандартных классов php и вообще менять названия папок файлов, если школо_взломщик(самые лютые и популярные взломщики ферм) увидит нестандартность скрипта, то скорее всего он подумает, что-то вроде: "Блин, скрипт не стандартная FF, не вытащить на пиво((".
думаю я ясно дал понять картину происходящего
Lis1988
Местный
- Сообщения
- 32
- Реакции
- 5
В лс мне пиши.Lis1988 написал(а):Ребята, я немного далековат от таких кодировку и т.п. Кто сможет за $ закатать дыры в скрипте и модулях
Пиши мне в личкуLis1988 написал(а):Ребята, я немного далековат от таких кодировку и т.п. Кто сможет за $ закатать дыры в скрипте и модулях
Ты шифруешь хеш несколько раз? Или у тебя соль 500 символов?AriCosmo написал(а):...Фактически дешифровать хэш созданный при помощи моего алгоритма не возможно,. это конечно круче соли с мд5, но тут минус в размере хранимого хэша, очень он уж большой получается. ...
P.S. Кстати есть такой алгоритм в PHP
rus56
Участник
- Сообщения
- 126
- Реакции
- 16
Доброго времени суток всем. Вопрос - AriCosmo будь добр показать скрипт шифрующий пароль!AriCosmo написал(а):Пароли я тоже (#2)шифрую при помощи собственного алгоритма
voodooas
Участник
- Сообщения
- 21
- Реакции
- 7
rus56 - в md5 шифруете - например md5($pass.$login.$mail) либо md5("blablabla".$pass)
при проверке на входе делаете то же самое.
if(md5("blablabla".$POST['pass'])==$data['pass']) проходим дальше.
Так получается довольно таки уникальный хеш набора символов.
Все в набросках.
при проверке на входе делаете то же самое.
if(md5("blablabla".$POST['pass'])==$data['pass']) проходим дальше.
Так получается довольно таки уникальный хеш набора символов.
Все в набросках.