Base de conocimientos
1000 FAQ, 500 tutoriales y vídeos explicativos. ¡Aquí sólo hay soluciones!
Esta guía explica cómo proteger su sitio web y a sus visitantes contra la explotación maliciosa del MIME-Type sniffing.
Prólogo
- El MIME-Type sniffing, o detección de tipo MIME, es una técnica utilizada por los navegadores web para determinar el tipo de contenido de un recurso cuando el tipo MIME proporcionado por el servidor es ambiguo, faltante o incorrecto.
- Aunque esto puede mejorar a veces la experiencia del usuario al hacer el contenido accesible a pesar de errores de configuración del servidor, esta funcionalidad también introduce vulnerabilidades de seguridad importantes:
- Cuando un navegador realiza MIME-Type sniffing, puede interpretar un archivo de texto como un script ejecutable, abriendo así la puerta a ataques de cross-site scripting (XSS); por ejemplo, un archivo destinado a ser tratado como texto plano podría ser interpretado como JavaScript, permitiendo a un atacante ejecutar código malicioso en el navegador del usuario.
- Al desactivar el MIME-Type sniffing, proteges a los visitantes contra la ejecución no autorizada de scripts maliciosos y también refuerzas la seguridad general de tu sitio web al reducir los vectores potenciales de ataques.
Desactivar la detección de tipo MIME
Para proteger a los usuarios y las aplicaciones web contra este tipo de vulnerabilidades, es posible desactivar la detección automática del tipo de recursos a través del archivo .htaccess
de sus sitios para indicar al navegador que confíe estrictamente en el tipo MIME especificado por el servidor sin intentar adivinarlo.
Al colocar el código a continuación en su archivo .htaccess
, asegura que el MIME-Type sniffing esté desactivado siempre que el módulo mod_headers
(que permite agregar la cabecera a continuación) esté activado en su servidor Apache:
- Abra el archivo
.htaccess
del sitio correspondiente desde el FTP Manager o un software/cliente FTP. Añada el siguiente código:
<IfModule mod_headers.c> Header always set X-Content-Type-Options "nosniff" </IfModule>
- Guarde el archivo
.htaccess
.
SafeMode, o modo seguro, es una medida de seguridad que restringe ciertas funcionalidades del servidor para prevenir posibles ataques.
Fue abandonada a partir de PHP 5.3.0 ya que se consideraba ineficaz para garantizar la seguridad y podía causar problemas de compatibilidad con ciertas aplicaciones.
Infomaniak utilizaba las restricciones open_basedir para sus antiguos planes de alojamiento que ya no están activados en las ofertas actuales.
Esta guía detalla la creación de un repositorio GIT tanto en su Alojamiento Web como en su Servidor Cloud Infomaniak.
Prólogo
- GIT y GITHub están disponibles por defecto en los dos soportes mencionados anteriormente.
- Para obtener ayuda adicional contacte a un socio o lanza una oferta gratuita — también descubre el rol del proveedor de alojamiento.
Creación del repositorio GIT
Configuración, en el servidor:
- el depósito GIT está en
/git_depot
- el sitio se encuentra en la carpeta
/web/[projet]
(en su servidor FTP)
Líneas de comando a indicar:
cd
mkdir git_depot
cd git_depot/
git init --bare [projet].git
cd [projet].git
git update-server-info
Envío del depósito local al servidor
Hacer en la computadora local:
git init
git remote add origin ssh://user@[xxxxx].ftp.infomaniak.com:/home/clients/[123465789]/git_depot/[projet].git
git status
git add .
git commit -a -m "init"
git push --set-upstream origin master
git push
Clonación del sitio en el directorio del servidor
Hacer en el servidor:
cd
cd web
rm -r [projet]/
git clone /home/clients/[123465789]/git_depot/[projet].git [projet]/
El módulo CGID para Apache ha sido desactivado en las ofertas de alojamiento web compartido de Infomaniak.
Si es necesario, debe considerar cambiar a una oferta de Servidor Cloud si actualmente está en una oferta de alojamiento web compartido. Esto se hace de manera transparente: consulte esta otra guía sobre el tema.
Esta guía explica cómo reemplazar, dentro de un alojamiento Web Infomaniak, la dirección de un sitio actualmente subdominio (https://dev.domain.xyz
por ejemplo) por el dominio principal (https://domain.xyz
).
Prólogo
- Las operaciones en resumen:
- Comenzamos con un sitio creado y accesible a través de la URL del dominio principal
dev.domain.xyz
. - Se le agrega un alias
domain.xyz
. - Se invierten los dos tipos (el dominio principal se convierte en alias y el alias se convierte en principal).
- Se elimina el antiguo nombre
dev.domain.xyz
.
- Comenzamos con un sitio creado y accesible a través de la URL del dominio principal
- Tenga en cuenta que la ubicación del sitio permanece en la carpeta original en el servidor; el nombre de esta ubicación puede ser de la forma
/sites/dev.domain.xyz
pero esto no tiene ninguna influencia en el sitio en producción. - Tenga en cuenta también el último capítulo de esta otra guía.
Las operaciones en detalle
Para pasar de un sitio con una dirección de tipo subdominio "dev.domain.xyz
" a una dirección directa "domain.xyz
":
- Haga clic aquí para acceder a la gestión de su producto en el Manager Infomaniak (¿Necesita ayuda?).
- Haga clic directamente en el nombre asignado al producto en cuestión.
- Haga clic en la flecha para expandir la sección Dominios de este sitio:
- Haga clic en el botón Agregar un dominio:
- Añada el nuevo nombre deseado, marque las casillas correspondientes.
- Haga clic en el botón para Confirmar:
- Una vez realizado el añadido, haga clic en el menú de acción ⋮ situado a la derecha del elemento en cuestión.
- Selecciona definir el elemento como dominio principal:
- Confirme la operación para proceder con la inversión de los dominios.
Esta guía trata sobre la compatibilidad entre los alojamientos Infomaniak y el lenguaje C# / framework .NET más la implementación Mono.
Tecnologías para el desarrollo de software
Para poder utilizar el lenguaje C# y el framework .NET, con la implementación Mono, para desarrollar aplicaciones de software que puedan ser desplegadas y ejecutadas en diferentes plataformas, fuera del ecosistema Windows, hay que considerar ofertas como:
La portabilidad y flexibilidad ofrecidas por estas tecnologías para el desarrollo de software multiplataforma implica que un alojamiento web compartido no será compatible.
Esta guía trata sobre la caché de consultas MySQL que, cuando está activada, almacena en memoria los resultados de las consultas ya ejecutadas.
Prólogo
- MySQL Query Cache permite acelerar las consultas idénticas posteriores evitando ejecutarlas de nuevo.
- Esto puede mejorar el rendimiento general del servidor de la base de datos al reducir la carga y disminuir el tiempo de respuesta para las consultas frecuentes.
¿query_cache_type activado o desactivado?
En los Alojamientos Web compartidos (es decir, fuera de Servidor Cloud) MySQL Query Cache no está ni activado ni activable.
En Serveur Cloud, active MySQL Query Cache con Fast Installer.
Esta guía trata sobre "browscap.ini", un archivo de configuración utilizado por la biblioteca PHP "browscap" que contiene información sobre los navegadores web y sus características, como su nombre, su versión, los sistemas operativos compatibles, las capacidades de navegación, etc.
Información sobre el archivo
El archivo "browscap.ini" refleja las últimas informaciones sobre los navegadores web. Puede ser utilizado con los scripts PHP que requieren la biblioteca "browscap".
phpinfo indica dónde se encuentra el archivo browscap.ini, es decir:
/opt/php/lib/php/browscap.ini
Puedes obtener el contenido del archivo tú mismo a través de un script PHP, por ejemplo:
<?php
header("Content-type: text/plain");
print file_get_contents("/opt/php/lib/php/browscap.ini");
?>
Tenga en cuenta que la biblioteca "browscap" ya no se utiliza ampliamente y que muchos desarrolladores prefieren otras soluciones para detectar los navegadores, como la función nativa de PHP "get_browser()".
Esta guía explica cómo activar PHP-FPM status
para, por ejemplo, depurar un sitio web lento a nivel de PHP.
Prólogo
PHP-FPM status
permite, entre otras cosas, seguir en tiempo real los scripts que se están ejecutando y su tiempo de ejecución.- Esta operación solo es posible en Serveur Cloud.
Activar PHP-FPM status
Para activar PHP-FPM
en un sitio, contacte con el soporte de Infomaniak desde una dirección de correo electrónico mencionada en tu cuenta de usuario para autenticar tu solicitud.
En su solicitud, por favor indique la dirección IP de origen que debe estar autorizada.
Una vez activado PHP-FPM status
, los siguientes enlaces URL permitirán mostrar la información necesaria:
- https://domain.xyz/fpm-status?json&full
- https://domain.xyz/fpm-status?html&full
- https://domain.xyz/fpm-status?xml&full
Atención: si tu sitio contiene reglas de reescritura (rewrite rules) que incluyen la ruta /fpm-status
, es probable que necesites hacer una excepción.
Esta guía trata sobre la redirección del tráfico web a un puerto específico, incluso en caso de uso de una IP dedicada y de una aplicación web específica (como Node
o Varnish
, por ejemplo).
Requisitos previos
- Instalar
HAProxy
en el Servidor Cloud.
Redirigir el tráfico web a un puerto específico
Por defecto, en el Servidor Cloud, el tráfico web se envía a Apache
. Para enviar las solicitudes a un script Node
o a otro servicio (siempre y cuando "escuche" en un puerto entre 4000 y 4009), es necesario pasar por HAProxy
.
Esto se aplica especialmente a los servidores Express
, Socket.IO
, Meteor.js
, Nuxt.js
, Django
, Flask
, Ruby on Rails
, incluso eventualmente Java (J2E)
, etc.
Para esto, debe asegurarse de que el servicio esté escuchando en un puerto entre 4000 y 4009 (especialmente con server.listen(4000)
para Express
o un servidor HTTP Node
básico, pero según el tipo de proyecto, por otros medios, un archivo de configuración, en el código o cualquier otro) y en todas las interfaces (0.0.0.0).
También será necesario configurar HAProxy
como en el ejemplo a continuación:
- Haga clic aquí para acceder a la gestión de su producto en el Manager Infomaniak (¿Necesita ayuda?).
- Haga clic directamente en el nombre asignado al producto en cuestión.
- Haga clic en Fast installer en el menú lateral izquierdo.
- Haga clic en el menú de acción ⋮ situado a la derecha de
HAProxy
. - Haga clic en Configurar:
- Seleccione la información deseada y guarde:
Recuperación de la IP de origen de una solicitud
Cuando rediriges el tráfico web hacia tu aplicación web, el procesamiento de las solicitudes cambia y la solicitud se recibe primero por un reverse proxy
(local en el servidor) que luego transfiere la solicitud al puerto elegido. Así, debido a la transferencia de la solicitud, los métodos que normalmente se utilizan para obtener la IP del visitante devolverán la IP del reverse proxy
en lugar de la del visitante.
Por lo tanto, para obtener la IP de origen real del visitante en estos casos, es necesario consultar un encabezado HTTP llamado X-Forwarded-For
, que contendrá las IPs de origen acumuladas en cada redirección. Este encabezado contendrá, por lo tanto, al final la dirección IP original del cliente, permitiendo identificar al visitante real.
Atención: Es importante tener en cuenta que los encabezados HTTP pueden ser manipulados, lo que presenta riesgos de seguridad. Para minimizar estos riesgos, se recomienda verificar que la solicitud provenga de un servidor confiable antes de confiar en el contenido del encabezado X-Forwarded-For
. Esta verificación puede implicar asegurarse de que la solicitud haya sido transmitida por un servidor intermediario de confianza, identificado por una lista preestablecida de direcciones IP. En el caso de que el sitio utilice una IP dedicada, los servidores de confianza son:
- 83.166.133.15
- 83.166.133.17
- 83.166.133.16
- 84.16.92.5
- 84.16.92.43
- 10.2.32.255
- 10.2.34.164