Robert'); DROP TABLE Students;--

Девушка по имени Rachel True не могла получить доступ к iCloud из-за своей фамилии

Robert'); DROP TABLE Students;-- Sql injection, Юмор, Apple, Icloud, Fail, Длиннопост, Мат

Интересно, что на протяжении шести месяцев у девушки регулярно снималась плата за облачное хранилище, к которому у неё не было доступа по вине Apple.


True - это её настоящая фамилия. Более того, она достаточно известная актриса, если не ошибаюсь:

https://en.wikipedia.org/wiki/Rachel_True


Комментаторы шутят, что ей стоило бы сменить фамилию на Null. Или добавить к фамилии .toString()


Ну и классический комикс XKCD в тему:

Robert'); DROP TABLE Students;-- Sql injection, Юмор, Apple, Icloud, Fail, Длиннопост, Мат

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


Update: в комментах привели хабрастатью (не видел в поиске, увы), в которой упоминается, что Павел Джундик (Pavel Djundik) показал, где именно возникает проблема в коде:

Robert'); DROP TABLE Students;-- Sql injection, Юмор, Apple, Icloud, Fail, Длиннопост, Мат
Robert'); DROP TABLE Students;-- Sql injection, Юмор, Apple, Icloud, Fail, Длиннопост, Мат

IT-юмор

5.7K поста52.6K подписчиков

Добавить пост

Правила сообщества

Не публикуем посты:
1) с большим количеством мата
2) с просьбами о помощи
3) не относящиеся к IT-юмору

Вы смотрите срез комментариев. Показать все
1
DELETED
Автор поста оценил этот комментарий

Есть программисты, может кто объяснить? Если программист сделал поле для ввода, то почему машина принимает значение этого поля? По логике туда вообще можно свой код вставить. Но все равно не понимаю, зачем машина поле ввода принимает как код?

раскрыть ветку (1)
10
Автор поста оценил этот комментарий

Например есть код sql запроса и кнопка отправить. Жмёшь и выполняется код

Эй база!, добавь текст в таблицу имя "Вася пупкин" END;

Он имеет определённую структуру, которую понимает машина. Т.е. где начала запроса, где конец и что делать.

Потом добавляем поле для ввода имени. При нажатии отправить, текст из поля подставляется в место, где сейчас стоит "Вася Пупкин". Всё также работает.

А потом он делает так

Эй база!, добавь текст в таблицу имя "Вася пупкин" END; Эй база!, удали всё нахрен" END;

т.е. он написал в поле не Вася пупкин, а

Вася пупкин" END; Эй база!, удали всё нахрен

Получается мы сами закрыли предыдущий запрос и вписали новый.

Ведь, что там, что там он просто прочитает КОД перед его выполнением.

Потому редактируемые поля должны проходить проверку перед выполнением, например на наличие ;() и других операторов кода, типа "ээ ты же имя пишешь, зачем тебе тут кавычки."

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку