Тёмный

SQL инъекция 

Volodya Mozhenkov
Подписаться 49 тыс.
Просмотров 44 тыс.
50% 1

SQL инъекция - это один из самых популярных методов «взломать» сайт. Этот метод расчитан на ошибку в работе с SQL строкой внутри программного кода сайта. К несчастью такая ошибка случается на столько часто, что эта проблема существует у большого количества веб ресурсов.
Предотрватить это можно (и нужно), и в большинстве современных языков программирования есть возможность создавать так называемые «подготовленные выражения».
В этом видео я объясняю в чём проблема с «наивным» подходом в работе с SQL и затем показываю как стоит обращаться к базе данных из программного кода (в примере используется PHP код, одного из моих проектов).

Опубликовано:

 

20 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 72   
@nelkor3427
@nelkor3427 7 лет назад
Неплохо Иисус рассказывает.
@NONAME-ko5zn
@NONAME-ko5zn 5 лет назад
Ору
@danboy521
@danboy521 5 лет назад
Этл не Иисус! Это Квай гон джин из зв!!!!!
@vassi2901
@vassi2901 3 года назад
2020 лет назад походу он тоже самое рассказывал, но люди его тогда не поняли и распяли
@romandeveloper5653
@romandeveloper5653 5 лет назад
Володя, спасибо за уроки! Доходчиво и понятно объясняешь! Не мог бы ты порекомендовать какую-либо книгу по sql, которая была бы полезна тем у, кого уже есть опыт в работе с БД? Так скажем, закрепить навыки, повысить квалификацию.)
@vns.91
@vns.91 4 года назад
Спаси и сохрани!
@BenderZadunaiski
@BenderZadunaiski 10 лет назад
допустим я хочу взл...ну проверить )))
@AlexAnder-os1lv
@AlexAnder-os1lv 7 лет назад
Очень интересный способ, никогда о таком не слышал. Всегда регулярками проверял и удалял лишнее другими функциями, но это явно проще и безопаснее должно быть. Спасибо)
@live_man
@live_man 2 года назад
Это одно из немногих видео на тему IT я посмотрел с интересом
@svetlanamazhaykina6918
@svetlanamazhaykina6918 2 года назад
Спасибо за Ваш труд! Здоровья Вам и процветания!
@landosibur
@landosibur 5 лет назад
с церкви пнули, ушел в хакеры
@lisafox9026
@lisafox9026 4 года назад
а в чем дело сибур ? это как то на знания влияет? и кому твое мнение нужно тут?
@landosibur
@landosibur Год назад
@@lisafox9026 видео назвать - взлом парикмахерской
@404Negative
@404Negative 4 года назад
забавно что за весь ролик ни разу не прозвучало слово "экранирование"
@АнтК-я9к
@АнтК-я9к 7 лет назад
для полноты картины кадило не хватает)
@lisafox9026
@lisafox9026 4 года назад
а тебе ума
@АнтК-я9к
@АнтК-я9к 4 года назад
@@lisafox9026 ну если он реально на попа похож =)
@beardtreasure
@beardtreasure 3 года назад
@@АнтК-я9к он похож на брутального блэк-металлиста! И он охеренно крутой чел)
@respect_tj1
@respect_tj1 5 лет назад
Когда спишь держишь бороду над одеялом или под неё?
@webenotlinux4860
@webenotlinux4860 7 лет назад
Володя, а ты C++ изучал? Ты отлично объясняешь! Может снимешь видео по языку?
@nailsv5924
@nailsv5924 4 года назад
божественно объяснил
@user-ir9rg2us6b
@user-ir9rg2us6b 9 лет назад
привет спасибо за видео) Больше бы видео о защите!
@namelessnew9516
@namelessnew9516 5 месяцев назад
Сам Иисус наполнил меня знаниями, спасибо!
@sgrodnik
@sgrodnik 5 лет назад
Спасибо за видос! Я не смог понять: connect это же не аналог str.replace? Где это можно почитать о питоне?
@crashoverride9681
@crashoverride9681 8 лет назад
Спасибо!
@КонстантинЪЪЪ
@КонстантинЪЪЪ 4 года назад
jesus! it's amazing
@user-su7mx2ik2t
@user-su7mx2ik2t 3 года назад
Вы отсылаете к другому видео.... ну ссылку то в описании дайте!
@Moonsters100
@Moonsters100 9 лет назад
Хм.. интересно, если же все так просто, то почему я впервые слышу о таком подходе и это после того, как я перелопатил груду материала и все как один экранируют входящие данные функцией mysql_escape_string().. Но все же урок достоин внимания, спасибо! И еще одно, если вводимые данные придется из БД выводить, то лучше сразу обработать их htmlspecialchars() или же strip_tags(), что бы удалять html теги вообще..
@VladimirMozhenkov
@VladimirMozhenkov 9 лет назад
Moon- -Ster Вы впервые о нём слышите, из-за того, что в россии очень часто используют копипаст при публикации даже книг. Получается, что материал опубликованый в 2015-ом году может просто быть копией книги 2011-го, которая была копией 2007, та копией 2005... и тд. На счёт htmlspecialchars, я-бы порекомендовал сразу использовать filter_input, там есть фильтры даже более полезные чем то, что делает htmlspecialchars. На счёт того, пропускать через фильтрацию при записи в БД или при чтении из неё, это зависит от того, что именно вы собираетесь делать. Но советую выбрать подход на сайте, и для всех данных делать одно и тоже, иначе может получиться, что где-то отфильтравали дважды (испортив даже нормальный текст), а где-то забыли отфильтровать (поставив пользователей под удар XSS).
@olgaa3651
@olgaa3651 6 лет назад
Не понятно про какое видео говорится вначале. :( Что надо посмотреть перед этим? Ссылку можно?
@Sjaand1
@Sjaand1 5 лет назад
ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-JGP3Tk4pWI8.html
@vladimirvarf5165
@vladimirvarf5165 4 года назад
Спасибо что делитесь знаниями. Удивительно что вам их не жалко в нашем алчном мире...
@Thom_Jefferson
@Thom_Jefferson 6 лет назад
Прошу заметить что не только на сайтах можно производить sql injection но и в играх...Почти все онлайн сервера хранят данные в БД. Найдя дырку и поправив пакеты можно создать в БД что то новое)))
@haslich
@haslich 2 года назад
я в сампе через ввод пароля один раз базу дампнул)
@АндрейШлыков-д9э
@АндрейШлыков-д9э 10 лет назад
Хорошее видео. По ходу просмотра возникают некоторые мысли: 1. А можно ли и логин тоже хешировать? 2. Было бы интересно провести опрос среди рядовых пользователей: насколько вы испытываете необходимость использовать в своём логине одинарные кавычки и куски кода на языке SQL?
@VladimirMozhenkov
@VladimirMozhenkov 10 лет назад
А если вы используете подготовленные вырожения, то хешировать вам и не надо. Извиняюсь если где-то плохо объяснил, но такой способ записи в базу данных ничего не хеширует, а просто позволяет добавить данные "как есть", то есть без попытки базы данных анализирования пользовательской информации, как собственного кода.
@VladimirMozhenkov
@VladimirMozhenkov 10 лет назад
А хеширование в дальнейшем не позволит вам выводить логин на вашем сайте. То есть если у вас есть вывод комментариев, вы сможете сказать "Пользователь1", "Пользователь2", и тд, а вот логин вы уже не покажете. Это конечно можно обойти и спросить у пользователя имя и выводить именно его, но оно уже не будет уникально. Так что надо будет следить, чтобы люди не выдавали себя за другого.
@АндрейШлыков-д9э
@АндрейШлыков-д9э 10 лет назад
Vladimir Mozhenkov Нет, всё было объяснено предельно ясно.
@alexeicodes
@alexeicodes 3 года назад
отличные видео)
@НикитаШмаль-ь7э
@НикитаШмаль-ь7э 3 года назад
Славься Володя!
@user-td4vi8xo8g
@user-td4vi8xo8g 4 года назад
Почему нельзя сделать if ('\'' in $login) {echo 'Пошёл нахрен!';} ???
@Ottonturk
@Ottonturk 9 лет назад
ТОЛЬКО наткнулся на ваши видео: скажите, пожалуйста, по программированию sql вы рассказываете что-то подробно? Спасибо!
@VladimirMozhenkov
@VladimirMozhenkov 9 лет назад
Ottonturk Пока что записал только видео про JOIN-ы.
@realman5573
@realman5573 9 лет назад
Vladimir Mozhenkov спасибо за видео, хотелось бы уроки по БД
@gideonwait9813
@gideonwait9813 5 лет назад
Аминь !
@linuxedhorse
@linuxedhorse 10 лет назад
Спасибо за урок, только инЪекция :)
@VladimirMozhenkov
@VladimirMozhenkov 10 лет назад
Странно, а с каких пор появилась приставка ин в русском?
@linuxedhorse
@linuxedhorse 10 лет назад
" В иноязычных словах после иноязычных приставок аб-, ад-, диз-, ин-, интер-, кон-, контр-, об-, суб-, транс- и после начальной частицы пан-, например: адъютант, дизъюнкция, инъекция, интеръекционный, конъюнктура, контръярус, объект, субъект, трансъевропейский, панъевропейский." (c) Грамота.ру Строго говоря, это заимствованное слово, а на них часто действуют свои правила.
@VladimirMozhenkov
@VladimirMozhenkov 10 лет назад
Уже исправил. Благодарю!
@404Negative
@404Negative 4 года назад
обнаружен гуманитарий. желаете удалить ? [OK] [Cancel]
@vladimirberezhnev8124
@vladimirberezhnev8124 3 года назад
Просвещение от самого Иисуса!
@user-sw7xu6hi3d
@user-sw7xu6hi3d 4 года назад
Connected "Svoboda" ? Ор !
@ВасилийЯнки
@ВасилийЯнки 8 лет назад
Как пример по отношению с фишкой or ''='': if(isset($_POST['login']) && isset($_POST['password'])) { // выборка из базы данных, проверка наличия введенного логина и пароля $data=mysqli_query($link_db,"SELECT login, password FROM users"); $user=mysqli_fetch_assoc($data); // проверка соответствий введенных данных в форму и выборки с базы данных if(htmlspecialchars($_POST['login'])==$user['login'] && md5(htmlspecialchars($_POST['password']))==$user['password']) { // ...код... } } Код я писал довольно давно, возможно htmlspecialchars может быть лишним в данном моменте как и md5.
@kapusta-v-lui-vi
@kapusta-v-lui-vi 7 лет назад
Код ужасный. В PHP уже не используются функции mysql_, есть PDO. Даже PDO уже считается не особо актуальным. Далее Вы создаете иерархию кода, вкладывая условие в условие. Можно проверять на неправильность и возвращать функцию: if( !$data ) return false; return $data;
@ekvineks
@ekvineks 4 года назад
Лобанов да хорош
@nikitagundorov9906
@nikitagundorov9906 4 года назад
Не думал что есть такие идиотские дыры. я думал что всё что вводит пользователь это переменные типа-string и потом их надо преобразовывать.
@НХАХГХЛХЫХЙ
@НХАХГХЛХЫХЙ 4 года назад
крутая у тебя прическа. вот борода мешает .
@lisafox9026
@lisafox9026 4 года назад
те кто обсуждает внешний вид, просто НЕ программеры а просто нарики которым нечего делать. потому что программер слушает лекцию и нам пофиг кто как одет, на работе куча фриков и очень умные !!!!
@1pavka
@1pavka 11 месяцев назад
Очень мелко все
@НикитаБивол-ш8в
Паук, у тебя сервер горит!
@ТюзМайский
@ТюзМайский 5 лет назад
Паук телегу толкает
@daanl88l
@daanl88l 4 года назад
Ну в логине и пароле запретить кавычки, подчеркивания, черточки и пробелы, что плохого? Привыкли же что в винде нельзя создавать папки с именами где есть вопросы, слеши и т.п. ...
@helloslayer666
@helloslayer666 10 месяцев назад
Это очень упростит брутфорс
@xenonist4502
@xenonist4502 4 года назад
Да чё за соль то такая?
@ИгорьБернацкий-э3о
md5($salt.$pass) - просто некая уникальная переменная, которая смешивается с паролем. md5 можно подобрать, но если неизвестна соль, то подбор практически нереален. Другое дело, что соль необходимо хранить не в базе данных, как показано в видео, а где-нибудь в конфиг файлах. Дело в том, что если, например, с помощью sql инъекций узнали какие-то ваши данные с бд, то и соль, соответственно, будет известна и толку от её присутствия нет никакого.
@nikita8165
@nikita8165 8 лет назад
БОРОДА НЕ МЕШАЕТ ПЕРЕЦ?:))))
@lisafox9026
@lisafox9026 4 года назад
при чем тут его борода? он про программирование а ты про вид, значит ты не программер а так, фигня какая то
@СергейСталь-ч9ц
@СергейСталь-ч9ц 3 года назад
Исус я грешен, я не знаю sql инъекции. Научи меня пожалуйста
@federicosforza3416
@federicosforza3416 4 года назад
исус
Далее
연준 (YEONJUN) ‘GGUM’ Official MV
02:44
Просмотров 8 млн
SQL Injection - теория и примеры
13:17
Просмотров 24 тыс.
SQL Join
18:51
Просмотров 167 тыс.
Что называется хешированием?
15:30