Introducción

Parte 10

Secretos, sesiones y confianza: no todo valor debe entrar en un script

La automatización se vuelve peligrosa cuando todo valor útil se trata como texto inofensivo. Contraseñas, claves privadas, cookies y estado de autenticación necesitan un ciclo de vida distinto al de rutas, tamaños de imagen o nombres de tablas.

Clasifique el valor antes de automatizarlo

Una ruta, nombre de archivo comprimido o ancho de imagen es configuración normal. Una contraseña, clave privada, token de sesión o credencial de base de datos puede conceder acceso. Si ambos tipos viven en el mismo script reutilizable, el propio script se convierte en secreto.

Antes de guardar un valor, pregunte: ¿puede autorizar algo? ¿Me sentiría cómodo copiando este archivo a otro proyecto o compartiéndolo para revisión? Si no, el secreto no pertenece a la receta.

Inspeccionar el entorno es útil, pero el entorno no es una caja fuerte

env enmascara deliberadamente valores con nombres sensibles. Es una protección de presentación, no una prueba de que cada variable de entorno sea segura o de que no exista un secreto bajo un nombre inesperado.

Inspeccione solo el espacio de nombres o valor que necesita. Evite capturas de pantalla y exportaciones de volcados completos del entorno, y no convierta una vista enmascarada del terminal en permiso para publicar la configuración real del servidor.

env
env server
env request

Sesiones y cookies son estado de aplicación, no texto de borrador

ses muestra datos jerárquicos de la sesión PHP y coo muestra cookies visibles como una superficie separada. El estado protegido de autenticación/cookie de sesión está bloqueado para las rutas normales de exportación y sobrescritura.

La frontera importa porque el estado de sesión puede transportar identidad, autorización y estado temporal. Inspeccione de forma estrecha, modifique solo espacio de nombress propios y no use la sesión como escondite para secretos de larga duración.

ses -l
coo
coo -a

Un hash puede probar igualdad; no puede ocultar el original

hash calcula resúmenes criptográficos y HMAC. Un resumen criptográfico es excelente para responder “¿cambiaron estos bytes?” y para registrar la identidad de un archivo comprimido o artefacto de versión publicada.

Calcular un hash no es cifrar. Si el valor original pertenece a un conjunto pequeño y fácil de adivinar, un hash no lo vuelve confidencial. Use HMAC cuando la autenticidad dependa de una clave secreta y cifrado cuando el contenido deba permanecer ilegible.

hash -s "hello terminal"
hash

El cifrado protege el contenido solo mientras la clave también esté protegida

enc usa cifrados autenticados, entrada de contraseña oculta y modos de clave exacta. Empiece con enc para ver qué admite el servidor; la entrada de contraseña predeterminada mantiene la contraseña fuera del historial visible.

Un archivo cifrado junto a su clave expuesta no está realmente protegido. Separa la clave y datos cifrados entre fronteras de confianza cuando sea posible, comprenda cómo recuperará el contenido y pruebe el descifrado antes de borrar el texto plano.

enc

Los permisos del sistema de archivos reducen acceso; no sustituyen la criptografía

Un modo como 0600 indica que el propietario actual debería ser el único lector/escritor ordinario. Es útil para archivos de clave locales y exportaciones privadas cuando el alojamiento respeta modos UNIX.

Los permisos no protegen frente al propietario de la cuenta de alojamiento, copias de seguridad o un proceso PHP comprometido. Use stat después de mod para comprobar qué cambió realmente y combine permisos con el modolo correcto de almacenamiento y cifrado.

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

Distinga limpieza, desinstalación y destrucción

clear solo limpia el historial visible. uninstall <module> elimina un módulo de extensión. kill -include elimina la capa opcional de interfaz, kill -install la capa de extensiones y kill sin opciones es la frontera de destrucción total del terminal.

Estas acciones nunca deberían mezclarse en la memoria muscular. Antes de una operación destructiva, nombre la capa que pretende quitar y los archivos que deben permanecer. Un usuario seguro del terminal puede explicar el rollback antes de pulsar Enter.

Limpieza visualclearSolo el historial visible; archivos y módulos permanecen
Eliminar módulouninstall <module>Un módulo de extensión; se respetan dependencias
Restablecer interfazkill -includeCapa CSS/JavaScript persistente o de sesión
Restablecer extensioneskill -installCapa de extensiones; Core permanece
Eliminación totalkillLa instalación de lil-terminal

Guárdalo como script

Guarde esto como trust-checkpoint.lil. Solo crea datos de ejemplo, aplica un modo de archivo restrictivo, registra metadatos y guarda un resumen criptográfico. Observe lo que deliberadamente no automatiza: la entrada de contraseña y las claves de descifrado quedan fuera del script.

#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