clearТолько видимый журнал; файлы и модули остаютсяСекреты, сессии и доверие: не каждое значение должно попадать в сценарий
Автоматизация становится опасной, когда любое полезное значение считается безобидным текстом. Пароли, закрытые ключи, файлы cookie и состояние авторизации должны обрабатываться иначе, чем пути, размеры изображений или названия таблиц.
Сначала определите класс значения, потом автоматизируйте
Путь, имя архива или ширина изображения — обычная конфигурация. Пароль, закрытый ключ, токен сессии или учётные данные базы могут дать доступ. Если складывать оба типа значений в один переносимый сценарий, сам сценарий становится секретом.
Перед сохранением значения задайте два вопроса: может ли оно дать доступ и готов ли я без опасений перенести этот файл в другой проект или показать его на проверке? Если нет — секрету не место в переносимом сценарии.
Окружение удобно смотреть, но оно не является хранилищем секретов
Смотрите только нужное пространство имён или значение. Не распространяйте снимки экрана и выгрузки всего окружения и не воспринимайте замаскированный экран терминала как разрешение публиковать реальную конфигурацию сервера.
envenv serverenv requestСессии и файлы cookie — состояние приложения, а не черновой текст
Эта граница важна: данные сессии могут содержать идентификаторы, сведения об авторизации и временное состояние приложения. Смотрите только нужную часть, меняйте собственные пространства имён и не используйте сессию как удобный тайник для долговечных секретов.
ses -lcoocoo -aХеш подтверждает совпадение; он не скрывает исходные данные
Хеширование — не шифрование. Если исходное значение легко перебрать, хеш не делает его конфиденциальным. HMAC нужен, когда проверка зависит от секретного ключа; шифрование — когда само содержимое должно оставаться недоступным для чтения без ключа.
hash -s "hello terminal"hashШифрование защищает содержимое, пока защищён и ключ
Зашифрованный файл рядом с незашифрованным ключом почти теряет смысл защиты. По возможности храните ключ и зашифрованные данные в разных границах доступа, заранее продумайте восстановление и проверьте расшифрование до удаления исходного открытого файла.
encПрава файловой системы ограничивают доступ, но не заменяют криптографию
Режим вроде 0600 означает, что чтение и запись доступны только владельцу файла. Это полезно для локальных файлов ключей и закрытых экспортов, если хостинг действительно соблюдает права доступа UNIX.
Права доступа не защищают от владельца хостинг-аккаунта, резервных копий или скомпрометированного PHP-процесса. После
cd lil-playgroundmd trustecho "example private note" > trust/note.txt -rmod trust/note.txt -0600stat trust/note.txthash trust/note.txtРазличайте очистку, удаление модуля и полное уничтожение
Эти действия не должны превращаться в одну механическую привычку. Перед разрушительной операцией назовите слой, который хотите убрать, и файлы, которые должны остаться. До запуска команды вы должны понимать, как вернуться к рабочему состоянию.
uninstall <module>Один модуль расширения с учётом зависимостейkill -includeПостоянный или сессионный слой CSS и JavaScriptkill -installУстановленный слой расширений; Core остаётсяkillСама установка lil-terminalСохраните это как сценарий
Сохраните это как trust-checkpoint.lil. Он создаёт только демонстрационные данные, задаёт ограниченные права, фиксирует метаданные и хеш. Обратите внимание, чего сценарий намеренно не автоматизирует: ввод пароля и ключи расшифровки остаются вне файла.
#lil
@install md echo mod stat hash
cd lil-playground
md trust
echo "example private note" > trust/note.txt -r
mod trust/note.txt -0600
stat trust/note.txt
hash trust/note.txt > trust/note.sha256 -r
stat trust/note.sha256