Comments 45
Мне кажется следовало бы упомянуть еще такой способ защиты, как использование prepared statements.
Статья интересная, но еще интереснее она была бы если б разбор полетов проходил на реальном сайте.
Разумеется, немного подождать пока админ этого сайта залатает дырку.
Разумеется, немного подождать пока админ этого сайта залатает дырку.
сайт брался тестовый для примера и на локальном хосте
за реальный можно и в тюрьму попасть
за реальный можно и в тюрьму попасть
За конкатенацию для подстановки значений в запрос еще в универе били по пальцам (и правильно делали). Используйте параметризованные запросы, и будет вам счастье.
хороший у вас универ был, что такие тонкости пальцеломом присекал
поддерживаю, мне что-то больше попадается не опытных фрилансеров, которые даже понятия «конкатенация» незнают.
Ну я бы не сказал, что это тонкость :)
ну в стиле преподавания в универе: выдать инфу по взаимодействию php с mysql, а уже подробности — изучайте сами. Не заостряют внимание на этом, да и далеко не каждый студент потом становится веб-прогером
Не соглашусь. Стиль преподавания в универе — дать теоретическую базу («научить учиться»), а php и иже с ним уже давать в качестве ознакомительных спецкурсов. Если база есть — освоить его и смежные технологии не составит большого труда.
Неужели сотни одинаковых статей на античатах и в журнале хакер и даже тут не достаточно и нужно мусолить и мусолить одно и тоже?
Ну серьёзно — что нового вы рассказали?
Ну серьёзно — что нового вы рассказали?
Мало того, автор еще и не до конца раскрыл тему.
Задача была рассказать, показать пример, разобрать пример.
В будущем что-нибудь ещё более подробно разберём.
Если хотите, можете написать свою статью с детальным (!) разбором примеров.
Кстати, насчёт одинаковых статей. Да, вы правы, на моей домашней странице тоже есть эта же статья. Насчёт античата и прочего — я не читаю статьи о чём-то предметном без наличия скриншотов, фотографий и других картинок.
В будущем что-нибудь ещё более подробно разберём.
Если хотите, можете написать свою статью с детальным (!) разбором примеров.
Кстати, насчёт одинаковых статей. Да, вы правы, на моей домашней странице тоже есть эта же статья. Насчёт античата и прочего — я не читаю статьи о чём-то предметном без наличия скриншотов, фотографий и других картинок.
Разберите переполнение буффера в прикладном ПО и, как следствие, выполнение произвольных команд на целевой системе.
кстати, не всегда они и нужны, эти скрины :) думаю тру-линуксоиды поддержат
Про статью промолчу, ибо фу.
я не читаю статьи о чём-то предметном без наличия скриншотов, фотографий и других картинок.мне вас жаль +)
Не sql injection, больше говнокод, но дает почувствовать себя хакером, Задание получить доступ к Админке
даешь связанные переменные! и не парься. PreparedStatement для Java и CreateCommand в C#
по-мойм такие «инъекции» сейчас даже школьники делать умеют, статьями этими весь интернет исписан. Правда должен заметить, что сайты с такими дырами встречаются часто, и я лично знаю людей, которые «программируют» вот так через анус.
Прячьте статью в черновики и дописывайте, в данной правке читать нечего.
простите, но статья для совсем начинающих PHP-разработчиков
я бы так не сказал, если это MySQL, то можно лишь читать данные; при наличии привилегии file_priv у текущего пользователя возможно также чтение/запись данных в файловую систему. Добавлять, изменять или удалять информацию не получиться.
бывают случаи, когда выявить SQL-инъекцию можно также с помощью обратного слеша.
это идеальный случай, ничего не сказано про Blind SQL-Injection.
данный «вариант» взлома очень далек от практики, так как после обнаружения уязвимости атакующий обычно сначала проверяет количество столбцов, затем получает информацию о сервере из version(), user(), etc, также названия баз данных/таблиц, и наконец, собственно, извлекает информацию из БД.
экранизируют романы, правильно — экранирование.
по умолчанию он всегда включен, а в последних версиях PHP этого параметра вообще нет. И это правильно, так как при разработке экранирование нужно делать самому.
есть возможность творить с БД (чаще всего это MySQL) что угодно
я бы так не сказал, если это MySQL, то можно лишь читать данные; при наличии привилегии file_priv у текущего пользователя возможно также чтение/запись данных в файловую систему. Добавлять, изменять или удалять информацию не получиться.
Далее пробуем передавать эти запросы серверу, т.е заходим на test.ru/?detail=1' или на test.ru/?detail=1".
бывают случаи, когда выявить SQL-инъекцию можно также с помощью обратного слеша.
Если при заходе на данные страницы появляется ошибка, значит сайт уязвим на SQL инъекции.
это идеальный случай, ничего не сказано про Blind SQL-Injection.
Тут название таблицы с новостями (в нашем случае это news) бралось логическим перебором.
данный «вариант» взлома очень далек от практики, так как после обнаружения уязвимости атакующий обычно сначала проверяет количество столбцов, затем получает информацию о сервере из version(), user(), etc, также названия баз данных/таблиц, и наконец, собственно, извлекает информацию из БД.
Данный процесс называется экранизацией.
экранизируют романы, правильно — экранирование.
В некоторых конфигурациях PHP этот параметр (магические кавычки) включён, а в некоторых нет.
по умолчанию он всегда включен, а в последних версиях PHP этого параметра вообще нет. И это правильно, так как при разработке экранирование нужно делать самому.
Какие нфиг magic quotes? Этот гребанный костыль давно выпилили и поделом ему.
В топике надо было либо глубже раскрывать вопрос защиты, либо глубже раскрывать вопрос проникновения и поиска. Тот код, что приведён как пример, следует отправить на говнокод. А сам топик в текущей редакции — на свалку.
В топике надо было либо глубже раскрывать вопрос защиты, либо глубже раскрывать вопрос проникновения и поиска. Тот код, что приведён как пример, следует отправить на говнокод. А сам топик в текущей редакции — на свалку.
Хватит уже упоминать покойников а-ля mysql_*. Это, теоретически, полезно как экскурс в историю, вдруг придется ковырять-поддерживать такой вот код. Но не более. А вдруг неофиты прочитают и будут следовать как истине?
согласен. но я нигде и не упоминал, что она полностью и исчерпывающим образом описывает широкую тему защиты данных. естественно каждый из нас имеет свои фитчи по безопасности, которые старатся применять.
но сами посудите, совесем не важно что использует художник: акварель или масло для написания картины. главное что бы заказ был сделан и он удовлетворял заказчика и базовым требованиям времени.
а вы тут понесли — «не так», «не полностью раскрыто» и.т.д. ясное дело — статья вводная, первая на хабре, абсолютно авторская.
но сами посудите, совесем не важно что использует художник: акварель или масло для написания картины. главное что бы заказ был сделан и он удовлетворял заказчика и базовым требованиям времени.
а вы тут понесли — «не так», «не полностью раскрыто» и.т.д. ясное дело — статья вводная, первая на хабре, абсолютно авторская.
$id=(int)$_GET['id_news'];
А я бы еще на isset проверил) А вобще, когда я пишу код, я просто не могу обойтись без простых функций вида: (самый примитив)
function _get($key=null,$default=null)
{
if(is_null($key)) return $_GET; //можно произвести какие-то действия
return isset($_GET[$key])? $_GET[$key]: $default; //а тут можно и фильтровать и всё, что угодно
}
к тому же, не возникнет ошибки к несуществующему элементу массива
Относительно Вашей проверки на число — думаю, стоит почитать статьи про плавающие запятые и угрозы на их основе.
Статья получилась уж слишком вводная.
Статья получилась уж слишком вводная.
В общем, советы по защите те же, только теперь вам стоит немного потратиться на человека, который за деньги проверит ваш сайт на наличие уязвимостей и сообщит вам результаты.
Хочу предложить Вам в помощь сайт для проверки защиты вашего ресурса — по сути фриланс биржа для людей обладающих умением взлома. От вас требуется разместить проект, указать тип уязвимости и бюджет. Дальше просто — ждать предложения выполнить проект от экспертов взлома. Проект молодой и ждёт своих клиентов!
hackmysite.ru/
Хочу предложить Вам в помощь сайт для проверки защиты вашего ресурса — по сути фриланс биржа для людей обладающих умением взлома. От вас требуется разместить проект, указать тип уязвимости и бюджет. Дальше просто — ждать предложения выполнить проект от экспертов взлома. Проект молодой и ждёт своих клиентов!
hackmysite.ru/
Sign up to leave a comment.
SQL инъекции. Проверка, взлом, защита