Cómo asegurar tus scripts en el directorio cgi-bin y evitar que se lean
En WebHosting Bolivia, todavía apoyamos tecnologías clásicas pero robustas como CGI (Common Gateway Interface). Sin embargo, un error común al subir scripts en Perl (`.pl`) o Python (`.py`) al directorio cgi-bin es que, si no se configuran correctamente, el navegador podría mostrar el código fuente en lugar de ejecutarlo.
Esto representa un riesgo de seguridad grave, ya que cualquier visitante podría leer la lógica de tu programación, rutas de bases de datos o claves API. Aquí te enseñamos cómo evitarlo.
No todos los proveedores mantienen estas librerías actualizadas. Nuestros planes de Web Hosting cPanel incluyen soporte nativo y pre-configurado para scripts CGI.
Ver Planes de Web Hosting cPanel
1. La importancia de la extensión del archivo (.cgi)
El servidor web (Apache/LiteSpeed) necesita saber qué archivos son ejecutables y cuáles son simplemente texto. La configuración estándar en cPanel reconoce automáticamente ciertas extensiones como "programas".
- Regla de oro: Asegúrate de que tus scripts terminen en
.cgio.pl. - Por qué: Si subes un script con un nombre como
programa.txto simplementeprograma(sin extensión), el servidor lo tratará como un documento de texto plano y lo mostrará tal cual al visitante, exponiendo tu código.
2. Permisos de Ejecución (chmod 755)
Incluso si el nombre es correcto, el script no funcionará (y arrojará un Error 500) si Linux no tiene permiso para "ejecutarlo".
Para asegurar el directorio cgi-bin y sus archivos:
- Ingresa al Administrador de Archivos en cPanel.
- Navega a la carpeta
cgi-bin. - Haz clic derecho sobre tu script y selecciona "Change Permissions" (Cambiar Permisos).
- Asigna el valor numérico 755.
- Esto permite al propietario (tú) escribir y ejecutar.
- Permite al público solo ejecutar (ver el resultado), pero no modificar ni "leer" el archivo crudo si la configuración del servidor es correcta.
3. Protección extra mediante .htaccess
Para añadir una capa extra de seguridad y asegurarte de que nadie pueda listar los archivos de tu carpeta cgi-bin (ver todos los scripts que tienes), puedes crear o editar el archivo .htaccess dentro de ese directorio y añadir la siguiente línea:
Options -Indexes
Esto impedirá que, si alguien entra a tusitio.com/cgi-bin/, vea una lista de tus archivos.
Preguntas Frecuentes
¿Por qué obtengo un "Error 500 Internal Server Error" en mi script?
En el 90% de los casos con CGI, esto se debe a permisos incorrectos. Asegúrate de que el archivo tenga permisos 755. Si tiene permisos 777 (demasiado abierto) o 644 (no ejecutable), el servidor bloqueará la ejecución por seguridad.
¿Puedo ejecutar scripts PHP dentro de cgi-bin?
Técnicamente sí, pero no es necesario ni recomendado. PHP funciona en cualquier parte de tu carpeta public_html. El directorio cgi-bin está reservado históricamente para scripts en Perl, Python, C++ o Bash scripts.
