[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Уязвимость на сайте
samb100
Как сделать так, чтобы при открытия сайта по ссылке
http://site.ru/catalog/index.php?id_cat=

не писало в браузере:
"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY vip DESC, id DESC LIMIT 0, 10' at line 1"

а выдавалось что-нибудь вроде "неверная ссылка. используйте правильную ссылку" и ГЛАВНОЕ: ЧТОБЫ ЭТО НЕ ПОСЛУЖИЛО ПРИЧИНОЙ ДЛЯ УЯЗВИМОСТИ САЙТА.



Спустя 11 минут, 26 секунд (14.06.2009 - 01:15) twin написал(а):
Для того, что бы не писало в браузере, достаточно убрать mysql_error(). Но проблему это не решит, потому что раз есть предупреждение, значит есть ошибка. Что касаемо уязвимостей, то это вопрос не такой простой, что бы на него ответить видя только http.

Спустя 17 минут, 15 секунд (14.06.2009 - 01:32) LionKing написал(а):
PHP
if (isset ($_GET['id_cat'])) {$i $_GET['id_cat'];} if ($i == '') {exit ("неверная ссылка. используйте правильную ссылку");}

так будет выводится сообщение


Спустя 10 минут, 34 секунды (14.06.2009 - 01:42) twin написал(а):
Конструкции exit, die и print_r это служебные прибамбасы и используются только при отладке скриптов. Ни один уважающий себя сайт не оставит юзера один на один с белым экраном и малопонятной надписью на нем. Обработку и выдачу ошибок нужно делать более изящными методами, дабы не распугать хрупкоранимых юзеров таким (прошу прощения) ламерским подходом.

Спустя 6 минут, 12 секунд (14.06.2009 - 01:49) LionKing написал(а):
извините))) rolleyes.gif

экзит можно заменить на экхо (или c помошью Header направить на предыдущею страницу) суть одна и таже

Спустя 11 минут, 13 секунд (14.06.2009 - 02:00) twin написал(а):
Ну тут не верен сам принцип. Ссылка может содержать что то нехорошее, не только пустоту. Допустим апостроф. Тогда никакого
Цитата
c помошью Header направить на предыдущею страницу
не произойдет, а будет как раз та самая уязвимость, если код написан неправильно.

Спустя 12 минут, 33 секунды (14.06.2009 - 02:12) LionKing написал(а):
а если из таблицы БД запросить поля id_cat занести ихскажем в
PHP
$cat['id_cat']
и сравнить с $i ? Eсли совпадений нет тогда вывести предупреждение что ссылка содержит что то нехорошее?

Спустя 5 часов, 44 минуты, 5 секунд (14.06.2009 - 07:57) twin написал(а):
Опять мимо. Это если сравнить со справочным бюро допустим. Вы спрашиваете адрес Васи Дормидонтовича Пупкина к примеру. Зная его порядковый номер. Девушка оператор (скрипт в нашем случае) каждый раз должна открывать книгу записей (БД), аккуратненько выписывать все порядковые номара на отдельную бумажку (оперативную память), а потом искать по этой бумажке тот, который ты запросил. И если его там нет, отправлять в соседнюю комнату, где висит плакат - НЕТ ВАСИ ПУПКИНА!!!
Вообще компьютер придумали люди и в программах, которые для него пишутся, очень много взято из жизни. По этому можно большую часть логики сравнивать с житейскими ситуациями. Но так как это виртуальный мир, то можно добавить немного волшебства. И делать так, как в жизни сделать невозможно, но очень хотелось бы.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.