
eleday
Канал про Python, IT, программирование и нейросети
Статистика канала
if input_token_hash == right_token_hash:
return True{}
При такой проверке злоумышленник может провести timing-атаку — смотреть на время выполнения операции, чтобы получить информацию о секретных данных
Суть в том, что при сравнении через "==" строки сравниваются посимвольно, а при первом несовпадении возвращается False
То есть сравнение "abcD" == "abcE" будет работать дольше, чем "aBcd" == "aEcd"
В первом случае сравнение проанализирует 4 символа, найдёт расхождение и закончится, а во втором расхождение случится уже на втором символе. Очевидно, что если в каком-то месте строки не совпадают, значит они уже не равны, поэтому дальше сравнение даже не пойдет и уже вернет результат False
Эта особенность классического сравнения дает злоумышленнику возможность более эффективно подбирать секретные значения. Ему не придется перебирать все возможные комбинации нужной длины, он сможет это делать по одному символу:
Условный пример
aaa — 1 мс
baa — 1 мс
caa — 1 мс
daa — 2 мс -> Правильный первый символ — d, можно перебирать следующие
daa — 2 мс
dba — 2 мс
dca — 3 мс -> Правильный второй символ — c{}
Как защититься
Для сравнения чувствительных данных использовать специальное сравнение, например, из встроенного модуля secrets
import secrets
if secrets.compare_digest(input_token_hash, right_token_hash):
return True{}
Эта функция работает одинаковое время независимо от того, найдено уже совпадение или нет и полностью перекрывает возможность провернуть timing-attack
@eledayrequirements.txt, package.json, pom.xml, как устроены папки, какие модули есть
3. Найди точку входа
- Для веб-приложений: server.js, app.js, manage.py, app.py, wsgi.py
- Для консольных скриптов: if __name__ == '__main__', main()
4. "Потыкай"
Запусти проект, посмотри, что он делает, какие данные принимает, как на них отвечает, на что ругается
Главное убедись, что проект своим запуском ничего не сломает на твое компьютере
5. Используй инструменты IDE
Поиск по файлам, перемещение к объявлению функции, отладка, подсветка синтаксиса, иерархия вызовов
6. Посмотри на тесты
Если в проекте есть папки tests/, test/, spec/, посмотри на их содержимое. Они могут дать более чёткую картинку о том, что это вообще за проект
7. Спроси у ИИ
Для ускорения понимания можно:
- скинуть структуру проекта (tree) и спросить, где искать тот или иной функционал или объяснить архитектуру целиком
- скинуть непонятную функцию или файл и попросить прокомментировать
Читайте, это полезно)
@eledayОтзывы канала
всего 9 отзывов
- Добавлен: Сначала новые
- Добавлен: Сначала старые
- Оценка: По убыванию
- Оценка: По возрастанию
Каталог Телеграм-каналов для нативных размещений
eleday — это Telegam канал в категории «Интернет технологии», который предлагает эффективные форматы для размещения рекламных постов в Телеграмме. Количество подписчиков канала в 4.7K и качественный контент помогают брендам привлекать внимание аудитории и увеличивать охват. Рейтинг канала составляет 15.4, количество отзывов – 9, со средней оценкой 5.0.
Вы можете запустить рекламную кампанию через сервис Telega.in, выбрав удобный формат размещения. Платформа обеспечивает прозрачные условия сотрудничества и предоставляет детальную аналитику. Стоимость размещения составляет 2797.2 ₽, а за 34 выполненных заявок канал зарекомендовал себя как надежный партнер для рекламы в TG. Размещайте интеграции уже сегодня и привлекайте новых клиентов вместе с Telega.in!
Вы снова сможете добавить каналы в корзину из каталога
Комментарий