Последние комментарии

Для меня эта страница - это удобный способ смотреть, что нового происходит в комментариях и сразу находить заметку, не заходя в админку. Думаю, она будет полезна и тебе.


знающий

Нет, у меня все работает как часы! 2015 Enterprise


Михаил Фленов

Люблю иметь полный контроль и не иметь дополнительной прослойки, которая на мой взгляд не добавляет удобства, а добавляет гемора. Это личное предпочтение и никому не навязываю. Я не против, если кто-то другой использует.

Кстати, на PHP я вообще-то использую doctrine. Не сказал бы, что я прям вообще в восторге от него, но приемлемо. Наверно первая прослойка, которая мне понравилась.


Николай

Просто любопытно, а что не так с теми фрейморками, что ты против их использования?


Михаил Флёнов

Подробные примеры я описывал в PHP глазами хакера и Web Сервер глазами хакера. Из базы данных можно будет удалить все строки, если id="1;delete from tbPerson"


Евгений

Все рано не понятно. Хотелось бы конкретный пример. Неужели в запросе String.Format("SELECT * FROM 123 WHERE id={1}", id), если id="delete from tbPerson", обнулится вся таблица tbPerson? Каким образом, подобные уязвимости могут быть использованы? Да мы скорее от сервера получим ответ от некорректной sql-инструкции. Или речь идет о различных "самодельных", бесплатных sql-серверах?


Здравствуйте! Помогите взломать пароль на фейсбуке


Михаил Флёнов

1. Как раз String.Format и имеется ввиду.
2. Я уже не помню, чтобы кто-то рекомендовал использовать процедуры. По крайней мере я никогда этого не рекомендовал и не буду
3. На сколько я помню, этот пункт противоречит предыдущему. Фреймворки типа doctrine в PHP или LINQ в .NET как раз генерят SQL запросы, а не процедуры. И я уже много раз говорил, что против использования этих фреймворков.

Кстати, в коде, о котором я говорю был фреймворк, который поддерживал параметризированные запросы. Но почему-то вместо передачи параметров, программисты решили использовать форматирование String.Format


Alouette

Михаил, можете пояснить? Не совсем понял, что вы имеете в виду под форматированием. Приведение к стилю кодирования? Тогда SQL-инъекции не при чем. Использование функции Format? А на каком языке? В SQL, насколько мне известно, нет такой инструкции. Может быть, имеется в виду конструкция вроде String.Format("SELECT * FROM 123 WHERE id={1}", id) из C#? Но разве запросы должны храниться не на сервере в виде хранимых процедур? И разве в современных системах их исполнение осуществляется не посредством фреймворков?


Michail

Был планшет и есть телефон самсунг. Уши работают любые, но управление только с родных, к которым слово "качество звука" не применимо ни разу. Но, если заморочиться и переставить сами динамики от koss, то получается ого-го! Bose у нас стоят фантастически. Оригинальные наушники самсунг найти можно, но подделок китайских великое множество.


Михаил Фленов

Форматировать строку - имелось ввиду без параметризации. При использовании параметров уязвимости не будет.


О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне