Zion-i2

Zion-i2
Рейтинг
108
Регистрация
10.06.2011

Смотрите, вот если я дам вам по кукушке и скажу: давай я научю тебя защищаться! (за деньги), вы согласитесь? Или вы пойдете на секцию бокса например, чтоб избежать таких ситуаций в будущем. Почерк письма отражает характер человека. Я например хвастунишка и проповедник, чему-то научился? Ты должен научить этому всех! Так вот этот парень мутный, где гарантии того, что он не оставит пару ньюансов (дыр) в тени, чтобы потом ими воспользоваться? Мне будет надежнее заплатить кому-то из вас, ведь вы безпрестрастны, а он с моего города и тоже занимается сайтами (конкурент), может он тоже уже взялся за создание городского сайта, а точнее он у него есть, только там ГС из трех страниц, но может он уже делает свой мега-проект. На вопрос: а зачем ты добавлял по 200 обьявлений в секунду 2 дня? Ведь можно было парочку добавить и отписать... Он сказал: для наглядности! Ответы скользкие. не дружелюбные. Предложение вступить в группу (вконтакте) вебмастеров нашего города - отклонил! В общем незнаю, стремно мне, да и вродибы мы пока дыры залатали... А насчет полезных знакомств, у нас в городе 70 тысяч человек, а ребят увлекающихся сайтами крайне мало, так что я давно пытаюсь собрать всех в группу и делать встречи, общение по интересам, обмен опытом и т.д. В общем как-то так.

bay_ebook:
так это проблема не sql, а каптчи и запрета для юзера на количество публикаций (правда еще нужно запретить создавать юзеров на автомате)

Уже поставил блокировку по ip на повторную регистрацию и добавление обьявлений. Ну естественно по времени.

arkadiy_a:
Не знаю целиком вашей ситуации но похоже вы адов неадекват.
Бюджет на рекламу есть:

Ну ладно в целях "экономии" на кодере сэкономили что норм в принципе, но человек набивается в тестеры, не зловредит, в открытую записи со словом "тест" создает подавая сигналы о проблеме.
Дайте ему немного бобла с полным раскрытием инфы что накопал, не жмотьтесь, и скажите спасибо что в этот раз он а не кто-то другой который вам дороже обойдется.

Я не считаю себя настолько ущербным в php и mysql чтобы не разобраться и не сделать защиту от sql хулигана. Мне 25 и мне чертовски интересно во всем этом разбираться, вот мое творение http://daroved.net/

Просто я запаниковал, но все равно спасибо всем, благодаря вам почистил обработчики от ненужного кода и решил проблему блогодаря этому

$text = mysql_real_escape_string(htmlspecialchars($_POST['text']));
siv1987:
При всем говнокодости этого говнокода, инъекцию здесь не возможно провести.

Я тоже так думал, пока в поле для текста обьявления не добавил вот этот простой и безобидный запрос

<?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')");
?>

то есть я заполнин все поля а в поле для текста этот запрос, и добавилось обьявление со всеми полями пустыми, только дата добавления была прописана и нули там где айдишники.... а это

<?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 в сутки с одного айпи.

bay_ebook:
Нда, я такого уже ну ОЧЕНЬ давно не видел :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" уже отписал вконтакте, хочет денег... (пока только намекает) обидно, в одном городе живем...

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 фаил, как в случае с инклюдом, но если скрипт юзается только на одной странице, то можно и не выносить, даже если он ооочень большой.

Всего: 632