169 похожих чатов

Кстати, а где-то используется base64 для защиты от инъекций? Что-то типа ``` def

check_login(email, password):
email_base64 = base64.b64encode(email).decode('ascii')
password_hash = bcrypt(password)
query = "select id, email from users where email = FROM_BASE64(email_base64) and password = password_hash"
```

21 ответов

25 просмотров

Security through obscurity

Dmitriy- Автор вопроса
Heart LESS
Security through obscurity

защита от инъекций ведь. Base64 не содержит кавычек

Dmitriy
защита от инъекций ведь. Base64 не содержит кавыче...

1) Base64 это не защита,sqmap может энкодить пейлоды(это если на автомате) 2) кавычки во многих случаях не работают

Dmitriy- Автор вопроса
Сергей Ермолов
1) Base64 это не защита,sqmap может энкодить пейло...

Почему не защита если это сделано на сервере? Клиент передаёт запрос как есть, сервер перед тем как представить запрос кодирует в base64

Dmitriy
Почему не защита если это сделано на сервере? Клие...

Потому что ты кавычку воткнешь внутрь base64

Dmitriy
Почему не защита если это сделано на сервере? Клие...

все-равно же декодировать придется, нет?

Dmitriy- Автор вопроса
molecrp
все-равно же декодировать придется, нет?

Так это уже какой-то MySQL делать будет. А он уже поймёт что эта кавычка не часть запроса

Dmitriy
Так это уже какой-то MySQL делать будет. А он уже ...

это точно? подтверждение есть тому, что он "поймет"?

Dmitriy
Почему не защита если это сделано на сервере? Клие...

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

Dmitriy- Автор вопроса
molecrp
это точно? подтверждение есть тому, что он "поймет...

Да, точно. По сути такой способ экранирования

Dmitriy- Автор вопроса
Anton Kirsanov 🐸
это защита, но через лишнее преобразование, которо...

Это да. Но видя какие тут велосипеды делают, возникает вопрос почему не сделать простой и надежный. С параметризацией кстати есть проблема на MySQL. Запросы с in (?,?,?) надо подготавливать n раз, по количеству разных значений в in. Т.е либо каждый раз два запроса вместо одного, либо утечка prepared statement’s (а из можно кешировать на сервере ограниченное количество)

Dmitriy
Это да. Но видя какие тут велосипеды делают, возни...

вообще наличие sql инъекций говорит об отсутствии, либо нарушении стандартов безопасной разработки, которые лучше отрабатывать не велосипедами, а повышением качества разработки, ревью, анализаторами кода. Все давным давно описано и написано, проблема ж не в том, что не придумали механизмы, а в том, что не умеют, не хотят, торопятся, забыли

Dmitriy- Автор вопроса
Anton Kirsanov 🐸
вообще наличие sql инъекций говорит об отсутствии,...

Не, ну так то да. Но всегда должно быть место велосипеду. Тот же телеграм - велосипед с т.з. крипты. Но работает ведь

Dmitriy- Автор вопроса

В mysql? Покажи, лол.

Dmitriy
Это да. Но видя какие тут велосипеды делают, возни...

Буквально зависит от языка и фреймворка

Dmitriy
В mysql? Покажи, лол.

CREATE TEMPORARY TABLE myvalues.... SELECT ... in ( SELECT value FROM MYVALUES )

Dmitriy- Автор вопроса
Личинка Кайтера
CREATE TEMPORARY TABLE myvalues.... SELECT .....

А в таблицу вы как вставлять данные будете? по одному с пакетом на запрос?

Dmitriy- Автор вопроса
Heart LESS
Через pdo и миграции

Выше решение было через подготовку времненой таблицы, а дальше select * where in (select from temptable). Но если изначально данные приходят от пользователя, то для вставки во временную таблицу (перед основным вызовом) все равно надо как-то защищать от инъекции при вставке в эту временную таблицу.

Dmitriy
А в таблицу вы как вставлять данные будете? по одн...

Пайплайнинг должны были завезти. Драйвер для мускула я писал лет 12 назад =)))

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта