Смотрите, вот если я дам вам по кукушке и скажу: давай я научю тебя защищаться! (за деньги), вы согласитесь? Или вы пойдете на секцию бокса например, чтоб избежать таких ситуаций в будущем. Почерк письма отражает характер человека. Я например хвастунишка и проповедник, чему-то научился? Ты должен научить этому всех! Так вот этот парень мутный, где гарантии того, что он не оставит пару ньюансов (дыр) в тени, чтобы потом ими воспользоваться? Мне будет надежнее заплатить кому-то из вас, ведь вы безпрестрастны, а он с моего города и тоже занимается сайтами (конкурент), может он тоже уже взялся за создание городского сайта, а точнее он у него есть, только там ГС из трех страниц, но может он уже делает свой мега-проект. На вопрос: а зачем ты добавлял по 200 обьявлений в секунду 2 дня? Ведь можно было парочку добавить и отписать... Он сказал: для наглядности! Ответы скользкие. не дружелюбные. Предложение вступить в группу (вконтакте) вебмастеров нашего города - отклонил! В общем незнаю, стремно мне, да и вродибы мы пока дыры залатали... А насчет полезных знакомств, у нас в городе 70 тысяч человек, а ребят увлекающихся сайтами крайне мало, так что я давно пытаюсь собрать всех в группу и делать встречи, общение по интересам, обмен опытом и т.д. В общем как-то так.
arkadiy_a: Не знаю целиком вашей ситуации но похоже вы адов неадекват.
Бюджет на рекламу есть:
Ну ладно в целях "экономии" на кодере сэкономили что норм в принципе, но человек набивается в тестеры, не зловредит, в открытую записи со словом "тест" создает подавая сигналы о проблеме.
Дайте ему немного бобла с полным раскрытием инфы что накопал, не жмотьтесь, и скажите спасибо что в этот раз он а не кто-то другой который вам дороже обойдется.
Я не считаю себя настолько ущербным в php и mysql чтобы не разобраться и не сделать защиту от sql хулигана. Мне 25 и мне чертовски интересно во всем этом разбираться, вот мое творение http://daroved.net/
Просто я запаниковал, но все равно спасибо всем, благодаря вам почистил обработчики от ненужного кода и решил проблему блогодаря этому
то есть я заполнин все поля а в поле для текста этот запрос, и добавилось обьявление со всеми полями пустыми, только дата добавления была прописана и нули там где айдишники.... а это
должно было вывестись как простой текст, вобщем я изучяя эти sql иньекции пол ночи, понял что у меня формы дырявые и он через них делал запросы.
UPD: Все работает, теперь все сценарии добавляются как текст. Но у него какойто софт так как он добавлял по 100 обьявлений чють ли не в секунду. теперь думаем как сделать ограничение на добавление обьявлений например максимум 3 в сутки с одного айпи.
bay_ebook: Нда, я такого уже ну ОЧЕНЬ давно не видел :0
Это я с перепугу подабовлял...
Спасибо большое, я все сделал и перезалил архив, но это как я панимаю просто "почистил код", а меня атакуют sql иньекциями через этот обработчик, я не могу понять как? Я нашел такой код. нужен ли он мне в обработчике? Или это только для гет запросов и если нужен то как его внедрить?
if (!preg_match("|^[\d]+$|", $id)) { header("Location: index.php"); exit("<p>You hacker?</p>"); }
siv1987: Это просто... габелла. Бессмысленная и беспощадная логика - if (isset($_POST['id_user_a'])) {$id_user_a = $_POST['id_user_a']; if ($id_user_a == '') {unset($id_user_a);}} И все остальное в том же духе.
id-шники - intval
остальное - htmlspecialchars (если не нужен html и нет обработки от xss) + mysql_real_escape_string
Спасибо большое, но я как бы не дорос еще чтобы вас понять, а точнее я понимаю вродибы. но на риализацию (методом народного тыка) у меня уйдет несколько дней, а мы уже устали перезаливать бекап, вот я и пишу тут, чтоб на примере может кто покажет, а ответы типа: юзай тото и тото, я как бы плохо понимаю, то на что я гаразд в данный момент вы я думаю увидили.
sabotage: Ну и чего ты хочешь от DB? Ставь правильный тип, формировать дату из него можно в любом виде (это по теме заносит туда дату только в формате год месяц день )
Все изменил тип полю с варчар на дата, но теперь не логично выглядит дата 2013-06-02 и плюс у меня там уже было 400 актуальных обьявления а дата после изменения типа полю превратилась в 0000-00-00
дани мапов: Так среднее число - день или все-таки месяц?
Месяц, а он удаляет в том случае если день меньше а то что месяц или год больше на то этот запрос уже внимание не обращает. И еще такой момент, у меня поле в котором хранится дата это варчар, просто если ставлю полю значение дата, то оно заносит туда дату только в формате год месяц день.
А я добавил ротатор ссылок в футере, сайт в подписи, там штук 150 ссылок на страницы с текстом, никаких дублей. просто эдакая перелинковка, сейчас пока срезало 40% трафика, но думается мне, что это временные меры предосторожности поисковых систем, значительно изменился контент? Писимизируем чуток до момента, пока не поймем, к лучшему или к худшему он изменился. В общем опыт есть и противоположный, где трафик удвоился после подобных телодвижений, так что каждый случай индивидуален, видать слишком от многих факторов это все зависит.
+ редактировать нужно только 1 фаил, как в случае с инклюдом, но если скрипт юзается только на одной странице, то можно и не выносить, даже если он ооочень большой.
Смотрите, вот если я дам вам по кукушке и скажу: давай я научю тебя защищаться! (за деньги), вы согласитесь? Или вы пойдете на секцию бокса например, чтоб избежать таких ситуаций в будущем. Почерк письма отражает характер человека. Я например хвастунишка и проповедник, чему-то научился? Ты должен научить этому всех! Так вот этот парень мутный, где гарантии того, что он не оставит пару ньюансов (дыр) в тени, чтобы потом ими воспользоваться? Мне будет надежнее заплатить кому-то из вас, ведь вы безпрестрастны, а он с моего города и тоже занимается сайтами (конкурент), может он тоже уже взялся за создание городского сайта, а точнее он у него есть, только там ГС из трех страниц, но может он уже делает свой мега-проект. На вопрос: а зачем ты добавлял по 200 обьявлений в секунду 2 дня? Ведь можно было парочку добавить и отписать... Он сказал: для наглядности! Ответы скользкие. не дружелюбные. Предложение вступить в группу (вконтакте) вебмастеров нашего города - отклонил! В общем незнаю, стремно мне, да и вродибы мы пока дыры залатали... А насчет полезных знакомств, у нас в городе 70 тысяч человек, а ребят увлекающихся сайтами крайне мало, так что я давно пытаюсь собрать всех в группу и делать встречи, общение по интересам, обмен опытом и т.д. В общем как-то так.
так это проблема не sql, а каптчи и запрета для юзера на количество публикаций (правда еще нужно запретить создавать юзеров на автомате)
Уже поставил блокировку по ip на повторную регистрацию и добавление обьявлений. Ну естественно по времени.
Не знаю целиком вашей ситуации но похоже вы адов неадекват.
Бюджет на рекламу есть:
Ну ладно в целях "экономии" на кодере сэкономили что норм в принципе, но человек набивается в тестеры, не зловредит, в открытую записи со словом "тест" создает подавая сигналы о проблеме.
Дайте ему немного бобла с полным раскрытием инфы что накопал, не жмотьтесь, и скажите спасибо что в этот раз он а не кто-то другой который вам дороже обойдется.
Я не считаю себя настолько ущербным в php и mysql чтобы не разобраться и не сделать защиту от sql хулигана. Мне 25 и мне чертовски интересно во всем этом разбираться, вот мое творение http://daroved.net/
Просто я запаниковал, но все равно спасибо всем, благодаря вам почистил обработчики от ненужного кода и решил проблему блогодаря этому
При всем говнокодости этого говнокода, инъекцию здесь не возможно провести.
Я тоже так думал, пока в поле для текста обьявления не добавил вот этот простой и безобидный запрос
то есть я заполнин все поля а в поле для текста этот запрос, и добавилось обьявление со всеми полями пустыми, только дата добавления была прописана и нули там где айдишники.... а это
<?php
$result = mysql_query("INSERT INTO announce_data (id_class_a, id_user_a, header_a, contact_a, text_a, date_add_a, date_end_a, tip_class_a) VALUES ('$id_class_a', '$id_user_a', '$header_a', '$contact_a', '$text_a', '$date_add_a', '$date_end_a', '$tip_class_a')");
?>
должно было вывестись как простой текст, вобщем я изучяя эти sql иньекции пол ночи, понял что у меня формы дырявые и он через них делал запросы.
UPD: Все работает, теперь все сценарии добавляются как текст. Но у него какойто софт так как он добавлял по 100 обьявлений чють ли не в секунду. теперь думаем как сделать ограничение на добавление обьявлений например максимум 3 в сутки с одного айпи.
Нда, я такого уже ну ОЧЕНЬ давно не видел :0
Это я с перепугу подабовлял...
Спасибо большое, я все сделал и перезалил архив, но это как я панимаю просто "почистил код", а меня атакуют sql иньекциями через этот обработчик, я не могу понять как? Я нашел такой код. нужен ли он мне в обработчике? Или это только для гет запросов и если нужен то как его внедрить?
if (!preg_match("|^[\d]+$|", $id)) {header("Location: index.php");
exit("<p>You hacker?</p>");
}
Так чтоли?
if (!preg_match("|^[\d]+$|", $id_user_a, $ip_user_a, $id_class_a, $tip_class_a, $header_a, $contact_a, $text_a, $date_end_a)) {header("Location: index.php");
exit("<p>You hacker?</p>");
}
Кстати "hacker" уже отписал вконтакте, хочет денег... (пока только намекает) обидно, в одном городе живем...
Это просто... габелла. Бессмысленная и беспощадная логика - if (isset($_POST['id_user_a'])) {$id_user_a = $_POST['id_user_a']; if ($id_user_a == '') {unset($id_user_a);}} И все остальное в том же духе.
id-шники - intval
остальное - htmlspecialchars (если не нужен html и нет обработки от xss) + mysql_real_escape_string
Спасибо большое, но я как бы не дорос еще чтобы вас понять, а точнее я понимаю вродибы. но на риализацию (методом народного тыка) у меня уйдет несколько дней, а мы уже устали перезаливать бекап, вот я и пишу тут, чтоб на примере может кто покажет, а ответы типа: юзай тото и тото, я как бы плохо понимаю, то на что я гаразд в данный момент вы я думаю увидили.
Ну и чего ты хочешь от DB? Ставь правильный тип, формировать дату из него можно в любом виде (это по теме заносит туда дату только в формате год месяц день )
Все изменил тип полю с варчар на дата, но теперь не логично выглядит дата 2013-06-02 и плюс у меня там уже было 400 актуальных обьявления а дата после изменения типа полю превратилась в 0000-00-00
Так среднее число - день или все-таки месяц?
Месяц, а он удаляет в том случае если день меньше а то что месяц или год больше на то этот запрос уже внимание не обращает. И еще такой момент, у меня поле в котором хранится дата это варчар, просто если ставлю полю значение дата, то оно заносит туда дату только в формате год месяц день.
А я добавил ротатор ссылок в футере, сайт в подписи, там штук 150 ссылок на страницы с текстом, никаких дублей. просто эдакая перелинковка, сейчас пока срезало 40% трафика, но думается мне, что это временные меры предосторожности поисковых систем, значительно изменился контент? Писимизируем чуток до момента, пока не поймем, к лучшему или к худшему он изменился. В общем опыт есть и противоположный, где трафик удвоился после подобных телодвижений, так что каждый случай индивидуален, видать слишком от многих факторов это все зависит.
+ редактировать нужно только 1 фаил, как в случае с инклюдом, но если скрипт юзается только на одной странице, то можно и не выносить, даже если он ооочень большой.