Код Middle Секреты и управление ключами обновлено
Простой сканер секретов
Условие
Напишите scan_secrets(text), которая возвращает отсортированный список уникальных типов найденных секретов:
aws_access_key:AKIAилиASIA, затем ровно 16 символов из заглавных латинских букв и цифр, на границах слова.github_token:ghp_,gho_,ghu_,ghs_илиghr_, затем ровно 36 латинских букв и цифр, на границах слова.private_key: строка вида-----BEGIN PRIVATE KEY-----или с одним словом из заглавных букв передPRIVATE(-----BEGIN RSA PRIVATE KEY-----).password: словоpassword,passwdилиpwd(без учёта регистра), перед которым нет латинской буквы (подходитDB_PASSWORD), затем необязательные пробелы,=или:, необязательные пробелы и необязательная кавычка, затем значение из 4 и более символов без пробелов и кавычек, которое не начинается с$,<или{(это подстановки, а не секреты).
Примеры
scan_secrets("aws_key = AKIAIOSFODNN7EXAMPLE") // ["aws_access_key"]
scan_secrets("token: ghp_a1B2a1B2a1B2a1B2a1B2a1B2a1B2a1B2a1B2") // ["github_token"]
scan_secrets("-----BEGIN RSA PRIVATE KEY-----\nMIIE...") // ["private_key"]
Как подойти
Подсказки: 2
- Опишите правила словарём имя → регулярное выражение.
- Негативный просмотр вперёд
(?![$<{])исключит подстановки.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.