Смотрите, вот если я дам вам по кукушке и скажу: давай я научю тебя защищаться! (за деньги), вы согласитесь? Или вы пойдете на секцию бокса например, чтоб избежать таких ситуаций в будущем. Почерк письма отражает характер человека. Я например хвастунишка и проповедник, чему-то научился? Ты должен научить этому всех! Так вот этот парень мутный, где гарантии того, что он не оставит пару ньюансов (дыр) в тени, чтобы потом ими воспользоваться? Мне будет надежнее заплатить кому-то из вас, ведь вы безпрестрастны, а он с моего города и тоже занимается сайтами (конкурент), может он тоже уже взялся за создание городского сайта, а точнее он у него есть, только там ГС из трех страниц, но может он уже делает свой мега-проект. На вопрос: а зачем ты добавлял по 200 обьявлений в секунду 2 дня? Ведь можно было парочку добавить и отписать... Он сказал: для наглядности! Ответы скользкие. не дружелюбные. Предложение вступить в группу (вконтакте) вебмастеров нашего города - отклонил! В общем незнаю, стремно мне, да и вродибы мы пока дыры залатали... А насчет полезных знакомств, у нас в городе 70 тысяч человек, а ребят увлекающихся сайтами крайне мало, так что я давно пытаюсь собрать всех в группу и делать встречи, общение по интересам, обмен опытом и т.д. В общем как-то так.
Уже поставил блокировку по 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')");?>
то есть я заполнин все поля а в поле для текста этот запрос, и добавилось обьявление со всеми полями пустыми, только дата добавления была прописана и нули там где айдишники.... а это
<?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 в сутки с одного айпи.
Это я с перепугу подабовлял...
Спасибо большое, я все сделал и перезалил архив, но это как я панимаю просто "почистил код", а меня атакуют 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" уже отписал вконтакте, хочет денег... (пока только намекает) обидно, в одном городе живем...
Спасибо большое, но я как бы не дорос еще чтобы вас понять, а точнее я понимаю вродибы. но на риализацию (методом народного тыка) у меня уйдет несколько дней, а мы уже устали перезаливать бекап, вот я и пишу тут, чтоб на примере может кто покажет, а ответы типа: юзай тото и тото, я как бы плохо понимаю, то на что я гаразд в данный момент вы я думаю увидили.
Все изменил тип полю с варчар на дата, но теперь не логично выглядит дата 2013-06-02 и плюс у меня там уже было 400 актуальных обьявления а дата после изменения типа полю превратилась в 0000-00-00
Месяц, а он удаляет в том случае если день меньше а то что месяц или год больше на то этот запрос уже внимание не обращает. И еще такой момент, у меня поле в котором хранится дата это варчар, просто если ставлю полю значение дата, то оно заносит туда дату только в формате год месяц день.
А я добавил ротатор ссылок в футере, сайт в подписи, там штук 150 ссылок на страницы с текстом, никаких дублей. просто эдакая перелинковка, сейчас пока срезало 40% трафика, но думается мне, что это временные меры предосторожности поисковых систем, значительно изменился контент? Писимизируем чуток до момента, пока не поймем, к лучшему или к худшему он изменился. В общем опыт есть и противоположный, где трафик удвоился после подобных телодвижений, так что каждый случай индивидуален, видать слишком от многих факторов это все зависит.
+ редактировать нужно только 1 фаил, как в случае с инклюдом, но если скрипт юзается только на одной странице, то можно и не выносить, даже если он ооочень большой.