OpenCode Web: buena herramienta y un default peligroso
Traducido del inglés. Lee el original en English.
¿La mejor alternativa?
Llevo un tiempo usando OpenCode y en muchas cosas me encaja mejor que Claude Code. Habla con varios proveedores como Ollama y Anthropic, es código abierto y cambiar de modelo a mitad de tarea es rápido.
También trae un modo web con opencode web que convierte la CLI en una aplicación de navegador. Eso es cómodo y a la vez es lo más arriesgado de la herramienta si no prestas atención.
El riesgo
Ejecutar opencode web levanta un servidor. Si lo atas a 0.0.0.0 para que un portátil de tu red lo alcance acabas de poner un endpoint de ejecución remota de código en la interfaz que tenga esa máquina.
La interfaz web ejecuta comandos, edita archivos y llega a una shell. De eso se trata. Sin autenticación, quien encuentre el puerto se lleva todo eso.
La exposición
Comprobé si esto ya estaba pasando en el mundo real con FOFA y la consulta title="OpenCode".
Encontré 32 hosts expuestos de inmediato.
Treinta y dos suena poco para un buscador y no lo es. Son 32 entornos de desarrollo alcanzables desde internet abierto. OpenCode se personaliza fácil así que una versión que cambie el título no aparece aquí en absoluto.
Cómo asegurarlo
OpenCode trae una forma de cerrar la interfaz web. Hay que activarla.
1. Pon una contraseña
Pon una contraseña antes de arrancar el servidor para que nadie llegue a la interfaz sin ella.
Ejecuta este comando antes de iniciar el servidor web.
opencode --set-password <your-strong-password>
También puedes definir la variable de entorno OPENCODE_SERVER_PASSWORD en su lugar.
2. No lo expongas a internet
No reenvíes el puerto a internet salvo que haya una VPN o un túnel delante. Mantenlo en 127.0.0.1 o en una red local que controles.
Conclusión
Recomiendo OpenCode. Una herramienta que puede reescribir tus archivos y ejecutar tu shell tiene que tratarse como tal.
Pon la contraseña antes de arrancarlo. Esa es toda la lección.