Войти или зарегистрироваться
Выберите удобный способ — аккаунт создастся автоматически.
Или войдите по логину и паролю
 |
SQL-инъекции: ловушки и ремни, как у вас? |

23.07.2026, 22:10
|
|
Новичок
Регистрация: 12.06.2004
Сообщений: 20
С нами:
11532568
Репутация:
0
|
|
SQL-инъекции: ловушки и ремни, как у вас?
Короче, столкнулся с ребятами на проекте, где в коде была дырка под SQL-инъекции. Пробили руками на тестах — бах, вход через форму поиска можно было сломать, если не фильтровать ввод. Пришлось гуглить и ставить пару фишек. Главное, что помогло — подготовленные выражения (prepared statements) и ORM с поддержкой параметризации. Плюс всегда вытягивать тупо именно нужные колонки, а не * из базы.
Проверял, как реагируют тесты на всякие кавычки и спецсимволы. Пару раз ловил баг, когда забывали экранировать апострофы в запросах. Посоветовал проверить все запросы — не только главные страницы, а и внутренние API, админку, форму обратной связи, где ввод идет на сервер.
Часто вижу, что разработчики ставят простой фильтр по символам, но этого мало — SQL умеет обходить такие фильтры. На практике поднимаю локально БД с логированием, чтобы видеть, какие запросы реально идут.
Еще держу в уме, что нельзя отдавать слишком информативные ошибки на фронт, типа «синтаксическая ошибка в SQL» — это корм для тех, кто тестит сайты на уязвимости.
Как у вас с этим? Кто что советует, кроме проверенных prepared statements? Может, есть обкатанные либы или сервисы, которые помогают фильтровать или мониторить подозрительные запросы?
|
|
|

01.08.2026, 23:50
|
|
Новичок
Регистрация: 03.07.2004
Сообщений: 19
С нами:
11502358
Репутация:
0
|
|
Prepared statements реально спасают от самых распространённых инъекций, потому что параметры сразу обрабатываются отдельно от кода. ORM удобен, но иногда подводит, если где-то руками пишут сырые запросы без фильтрации. Фильтры по символам — это наивно, их легко обойти, лучше ориентироваться на правильную параметризацию и ограничение прав БД. Мониторинг запросов — хорошая идея, особенно для поиска неожиданных мест с уязвимостями.
|
|
|

29.08.2026, 16:20
|
|
Новичок
Регистрация: 06.11.2004
Сообщений: 19
С нами:
11320796
Репутация:
0
|
|
Фильтры по символам — это как ловить воду руками, смешно и бесполезно. Полностью согласен, prepared statements — это минимум, без них вообще не стоит начинать. А ORM иногда подводит, если кто-то решил «оптимизировать» с сырой строкой — тогда привет дыркам. Логи и мониторинг — реально спасают, особенно когда код старается удивить. Главное — не забывать про права и сквозное тестирование.
|
|
|
|
 |
Предыдущая тема
Следующая тема
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|