Какой рейтинг вас больше интересует?
|
Главная / Главные темы / Тэг «sweetnith»
[recovery mode] Защита от SQL-инъекций в PHP и MySQL 2012-08-06 09:22:18
К своему удивлению, я не нашёл на Хабре исчерпывающей статьи на тему защиты от инъекций. Поэтому ...
+ развернуть текст сохранённая копия
К своему удивлению, я не нашёл на Хабре исчерпывающей статьи на тему защиты от инъекций. Поэтому решил написать свою.
Несколько пространный дисклеймер, не имеющий прямого отношения к вопросуДавайте признаем факт: количество статей (и комментариев) на тему защиты от SQL-инъекций, появившихся на Хабре в последнее время, говорит нам о том, что поляна далеко не так хорошо истоптана, как полагают некоторые. Причём повторение одних и тех же ошибок наводит на мысль, что некоторые заблуждения слишком устойчивы, и требуется не просто перечисление стандартных техник, а подробное объяснение — как они работают и в каких случаях должны применяться (а в каких — нет).
Статья получилась довольно длинной — в ней собраны результаты исследований за несколько лет — но самую важную информацию я постараюсь компактно изложить в самом начале, а более подробные рассуждения и иллюстрации, а так же различные курьёзы и любопытные факты привести в конце. Также я постараюсь окончательно развеять множественные заблуждения и суеверия, связанные с темой защиты от инъекций.
Я не буду пытаться изображать полиглота и писать рекомендации для всех БД и языков разом. Достаточное количество опыта у меня есть только в веб-разработке, на связке PHP/MySQL. Поэтому все практические примеры и рекомендации будут даваться для этих технологий. Тем не менее, изложенные ниже теоретические принципы применимы, разумеется, для любых других языков и СУБД.
Сразу отвечу на стандартное замечание про ORM, Active record и прочие query builders: во-первых, все эти прекрасные инструменты рождаются не по мановению волшебной палочки из пены морской, а пишутся программистами, используя всё тот же грешный SQL. Во-вторых, будем реалистами: перечисленные технологии — хорошо, но на практике сырой SQL постоянно встречается нам в работе — будь то legacy code или развесистый JOIN, который транслировать в ORM — себе дороже. Так что не будем прятать голову в песок и делать вид, что проблемы нет.
Хоть я и постарался подробно осветить все нюансы, но, вполне возможно, некоторые из моих выводов могут показаться неочевидными. Я вполне допускаю, что мой контекст и контексты читателей могут различаться. И вещи, которые кажутся мне сами собой разумеющимися, не являются таковыми для некоторых читателей. В этом случае буду рад вопросам и уточнениям, которые помогут мне исправить статью, сделав её более понятной и информативной.
Ещё только начав интересоваться темой защиты от инъекций, я всегда хотел сформулировать набор правил, который был бы одновременно исчерпывающим и компактным. Со временем мне это удалось:
Правила, соблюдение которых гарантирует нас от инъекций
- данные подставляем в запрос только через плейсхолдеры
- идентификаторы и ключевые слова подставляем только из белого списка, прописанного в нашем коде.
Всего два пункта.
Разумеется, практическая реализация этих правил нуждается в более подробном освещении.
Но у этого списка есть большое достоинство — он точный и исчерпывающий. В отличие от укоренившихся в массовом сознании правил «прогонять пользовательский ввод через mysql_real_escape_string» или «всегда использовать подготовленные выражения», мой набор правил не является катастрофическим заблуждением (как первое) или неполным (как второе).
Но вперёд, читатель — перейдём уже к подробному разбору.
Читать дальше →
Тэги: injection, mysql, mysqli, pdo, php, prepared, sql, statement, безопасность, информационный
Russian Stand-up Стоя 2012-06-07 00:58:11
«Стоя» — это новое шоу от создателей известных многим интернет пользователям Russian ...
+ развернуть текст сохранённая копия
«Стоя» — это новое шоу от создателей известных многим интернет пользователям Russian Stand-up и Russian Drink Time. Шоу представляет из себя как описывают его сами создатели: «комедийную машину, призванную перемалывать человеческие пороки и тупость». Юрий Хованский создатель канала Russian Stand-up, на видеохостинге YouTube и бессменный ведущий всех шоу программ на нём, человек и вправду имеющий [...]
Тэги: drink, russian, stand-up, time, обзор, стендап, стоить, хованский, юрий
Индонезийские пейзажи фотографа Arnov Setyanto (70 фото) 2012-05-18 17:38:08
Арнов Сетьянто (Arnov Setyanto) - талантливый индонезийский фотограф, снимающий изумительные пейзажи ...
+ развернуть текст сохранённая копия
log in to give LJ Tokens.', event);">Give 10
Тэги: arnov, foto, setyanto, галерея, индонезия, пейзаж, фото, фотограф, фотография, фотоискусство
Staind 2012-05-02 03:35:33
Staind – рок группа Staind является американская рок-группа, которая ...
+ развернуть текст сохранённая копия
Staind – рок группа Staind является американская рок-группа, которая была сформирована в 1995 году в Спрингфилде, штат Массачусетс. За 16 лет, группа состояла из вокалиста и ритм-гитарист Aaron Lewis, гитарист Mike Mushok, басист Johnny April и барабанщик Jon Wysocki (который оставил в мае 2011 г.). На сегодняшний день, группа записала семь студийных альбомов: Tormented [...]
Тэги: staind-рок, группа, музыкант, новость
Ебать как я люблю современную музыку 2012-04-23 17:28:24
Современная музыка просто тащит! А все известные классики только и просятся лососнуть у Джастина ...
+ развернуть текст сохранённая копия
Современная музыка просто тащит! А все известные классики только и просятся лососнуть у Джастина Пидера! Кстати, Гуф умер также от современной музыки, а именно от репа, в котором только и... показать полностью...
Тэги: russian, stand-up, видео, юмор
Страницы: ... 21 22 23 24 25 26 27 28 29 30
Главная / Главные темы / Тэг «sweetnith»
|
Взлеты Топ 5
Падения Топ 5
|