Найти в Дзене
1 месяц назад

7 книг для программиста, которому тесно в роли «я просто пишу код».

Хочешь влиять на решения и вести команду? Собрал книги, которые прочитал сам и советую. Брать больше ответственности можно, не взваливая всё на себя.

1 месяц назад

Как положить сервер на разборе параметров?

Есть одна оговорка про хеш-таблицы, которую все выдают на собеседовании, но забывают при разработке. Поиск и вставка работают за O(1). В среднем. Это «в среднем» многое меняет, если ключи в таблицу присылает тот, кто хочет положить сервис. Можно специально подобрать их так, чтобы сервер тратил всё больше времени на каждую последующую вставку. Эта атака называется hash flooding. И начинается она с обычной коллизии. ——— Хеш-функция выбирает корзину для ключа. Разные ключи могут попасть в одну корзину, поэтому таблице нужен способ хранить их вместе...

1 месяц назад

Как подделать JWT, зная только публичный ключ

Про JWT уже написали столько, что очередной разбор заголовка, данных и подписи хочется пролистнуть. Поэтому я хочу разобрать конкретную уязвимость: как пользователь может вписать себе role=admin и пройти проверку подписи. Без приватного ключа. Ему хватит публичного — того самого, который можно свободно раздавать. Уязвимость называется algorithm confusion — подмена алгоритма. Атакующий указывает в токене другой алгоритм и подписывает его публичным ключом сервера. Уязвимый код использует этот ключ как HMAC-секрет...

1 месяц назад

Тимлид, который решает всё сам, делает команду слабее

Аналитик и тимлид тащат проект в две каски. Аналитик собирает ФТ и НФТ, проектирует интеграции, ведёт проект и согласует ожидаемый результат. Когда перестаёт вывозить, НФТ и интеграции забирает тимлид. У тимлида при этом остаются люди, процессы и ответственность за результат. В какой-то момент проект упирается в свободное время этих двоих. ——— Разработчики ждут декомпозицию. Решения принимают несколько экспертов, а на обсуждение с командой времени нет: «делаем вот так». Команда привыкает реализовывать чужие решения. Самостоятельно проектировать ей почти не приходится. Сильный тимлид может долго вытягивать проект в таком режиме...

1 месяц назад

🪫 После релиза отдохну

Ты уже устал, но ещё можешь поработать. Этого почему-то хватает, чтобы снова отложить отдых. Закрыть ноутбук неудобно: у разработчика вопрос, задача почти готова, завтра спросят результат. А прогулку перенести легко. Сон тоже. «После релиза отдохну». Только после релиза нужно разобрать баги и готовить следующий. Каждый раз находится достаточно веская причина ещё немного потерпеть. Так отдых постепенно становится чем-то, что ты разрешишь себе, когда уже совсем не сможешь работать. ——— При этом кажется, что ты справляешься. Задачи ведь закрываются. Только на обсуждении архитектуры уже хочется согласиться с первым вариантом, лишь бы закончили...

Если нравится — подпишитесь
Так вы не пропустите новые публикации этого канала
Покупайте СтеллыИ дарите их за контент