для «методом тыка» исправлять синтаксические ошибки очень помогают php редакторы, вроде zend studio (платная), komodo edit (бесплатная) и тому подобные. а помочь вам практически не возможно, так как не понятно откуда вы этот код взяли и какое он имеет отношение к ошибкам из первого поста.
ivan-lev: :) катят.. они в базу попадают.. А потом, при авторизации $_POST['login'] (экранированный, как положено) берётся для поиска юзера (в базе, с кавычкой.. юзер, естественно находится, если он там есть...), после чего этот $_POST['login'] проходит валидацию в Auth::test_token и уже дальше в "чистом виде" (т.е. без экранирования) попадает в функции.. А дальше.. дальше - хз.. может там ничего и нет..
хотя да. кавычка то записывается в базу, хоть и экранируется вначале.. хэх, нужно дальше смотреть 🍿
---------- Добавлено 31.03.2013 в 00:47 ----------
хех, а с кавычкой тоже проблемы начались, например для активации пользователя админом он его должен «активировать» а он это не может сделать, так как js падает с ошибкой на функции users_approve которая в качетсве парметра принимает логин с кавычкой :D в общем, это конечно баги, если смотреть с одной стороны даже критичные, но я сомневаюсь что именно это способствовало появлению вредоносных файлов на сервере.
хотя, судя по базе данных я вообще не вижу где тут активация отмечается..
ivan-lev: Ждём главного телепата.. :) Ну или можете у самого исполнителя спросить.. Я больше к "не специально" склоняюсь..
Доработка, кстати, может и не пригодиться.. (как с Неуловимым Джо)
А так - формально, прокатывает регистрация с логином вроде
' OR 1 = 1 OR 1 = '1
А он чуть позже передаётся без экранирования.. (как уже отметил выше RedOK)
Возможно, там дальше и "нет ничего"..
нет, нифига or 1 не прокатывает :( , мой магический шар подсказывает что в Auth::new_user фильтруется и логин и мыло, а пароль вообще в md5 с солью шифруется
$db->query('INSERT INTO {admins} (`login`, `password`, `email`) VALUES ("'.mysql_escape_string($login).'", "'.$hash_password.'", "'.mysql_escape_string($email).'")')
, так что кавычки не катят.
---------- Добавлено 31.03.2013 в 00:10 ----------
в общем, автор, мой не совсем адекватный мозг на данный момент, говорит что дырку вам стоит искать в другом месте, ибо тут ничего серьёзного не нашел.
при следующей встрече с этим программистом, если она состоится (да хоть и виртуально) посоветуйте не использовать mysql_escape_string ибо это уже даже не смешно, и вообще пусть переходит на PDO или что-то в этом роде. так как «mysql_query» через пару лет накроется медным тазом на большинстве хостингов. хотя если он пишет залипухи, которые рассчитаны на пару месяцев работы, то нечего беспокоится 🍿
Особенно такой замене порадуются на украинских сайтах, использующих апостров)
как раз это хотел написать. с автора поржал 😂
$aFilterComments = array(' нецензурное выражение ',' жесткий мат ');в данном случае решением будет добавить пробел, до и после каждого мата.
http://uk3.php.net/idn_to_ascii ?
может, как вариант, запретить исполняться файлам в директории, типа:
<FilesMatch ".(js|png)$
Order Allow,Deny
Deny from all
</FilesMatch>
это не запрет «выполнятся» файлам. это банальное закрытие доступа к файлам которые совпадают по расширению.
у автора проблема не с локальными фалами, ему нужно
для «методом тыка» исправлять синтаксические ошибки очень помогают php редакторы, вроде zend studio (платная), komodo edit (бесплатная) и тому подобные. а помочь вам практически не возможно, так как не понятно откуда вы этот код взяли и какое он имеет отношение к ошибкам из первого поста.
ссылка в первом посте не активная, не могу сайт с примером посмотреть
а это код из какого файла?
---------- Добавлено 31.03.2013 в 01:11 ----------
и вообще, кто вам подсказал такое решение проблем как удаление строк, которые вызывают ошибки? :D
чтобы запретить, нужно как минимум знать как он обращается к другому серверу, из вашего описания это совсем не понятно.
:) катят.. они в базу попадают..
А потом, при авторизации $_POST['login'] (экранированный, как положено) берётся для поиска юзера (в базе, с кавычкой.. юзер, естественно находится, если он там есть...), после чего этот $_POST['login'] проходит валидацию в Auth::test_token и уже дальше в "чистом виде" (т.е. без экранирования) попадает в функции..
А дальше.. дальше - хз.. может там ничего и нет..
хотя да. кавычка то записывается в базу, хоть и экранируется вначале.. хэх, нужно дальше смотреть 🍿
---------- Добавлено 31.03.2013 в 00:47 ----------
хех, а с кавычкой тоже проблемы начались, например для активации пользователя админом он его должен «активировать» а он это не может сделать, так как js падает с ошибкой на функции users_approve которая в качетсве парметра принимает логин с кавычкой :D в общем, это конечно баги, если смотреть с одной стороны даже критичные, но я сомневаюсь что именно это способствовало появлению вредоносных файлов на сервере.
хотя, судя по базе данных я вообще не вижу где тут активация отмечается..
Ждём главного телепата.. :) Ну или можете у самого исполнителя спросить.. Я больше к "не специально" склоняюсь..
Доработка, кстати, может и не пригодиться.. (как с Неуловимым Джо)
А так - формально, прокатывает регистрация с логином вроде
А он чуть позже передаётся без экранирования.. (как уже отметил выше RedOK)
Возможно, там дальше и "нет ничего"..
нет, нифига or 1 не прокатывает :( , мой магический шар подсказывает что в Auth::new_user фильтруется и логин и мыло, а пароль вообще в md5 с солью шифруется
$db->query('INSERT INTO {admins} (`login`, `password`, `email`) VALUES ("'.mysql_escape_string($login).'", "'.$hash_password.'", "'.mysql_escape_string($email).'")'), так что кавычки не катят.
---------- Добавлено 31.03.2013 в 00:10 ----------
в общем, автор, мой не совсем адекватный мозг на данный момент, говорит что дырку вам стоит искать в другом месте, ибо тут ничего серьёзного не нашел.
при следующей встрече с этим программистом, если она состоится (да хоть и виртуально) посоветуйте не использовать mysql_escape_string ибо это уже даже не смешно, и вообще пусть переходит на PDO или что-то в этом роде. так как «mysql_query» через пару лет накроется медным тазом на большинстве хостингов. хотя если он пишет залипухи, которые рассчитаны на пару месяцев работы, то нечего беспокоится 🍿