Actualizado el jueves, 20 julio, 2023
La seguridad es un tema que nos preocupa a todos. En dinahosting somos conscientes de ello y por ello realizamos análisis periódicos y renovamos nuestros estándares de seguridad continuamente para ofrecerte los hostings más seguros. No obstante, en lo tocante a la seguridad existe una parte que recae en el propietario de cada hosting. En el post de hoy te presentaré algunas prácticas que puedes llevar a cabo en tu sitio para aumentar la seguridad de tu hosting con PHP.
En este post te contábamos por qué debes mantener una actualización periódica de tu PHP, y una de ellas, fundamentalmente, es por la seguridad.
Índice de contenidos
Prácticas básicas
Aunque no sepas ni una pizca de PHP existen prácticas básicas que puedes realizar para proteger tu hosting. A lo mejor piensas que no tienes nada de código PHP en él. Recuerda que muchos CMS están implementados sobre PHP (Entre ellos WordPress), por lo que aunque no toques el código de tu web, sí que puedes tener archivos escritos en PHP.
Mantente actualizado
Esto es una regla básica… cuanto más nuevo, más seguro. Cualquier actualización resuelve bugs y problemas; entre ellos problemas de seguridad. Es por eso que es interesante que la versión PHP de tu servidor sea lo más actual posible. Recuerda que en dinahosting ya ofrecemos la versión 8.2 de PHP.
Nuestro equipo de soporte está disponible las 24 horas para ayudarte con cualquier incidencia. Para cambiar tu versión de PHP solo tienes que entrar en tu Panel de Control, al apartado Hosting > Servidor > PHP > Versión PHP. Ahí eliges PHP 8.2 o la versión que prefieras, y listo.
Gestiona bien los permisos
Presta atención a la modificación de los archivos PHP de tu servidor para que no pueda alterar su código cualquiera. Los archivos PHP de cualquier auto-instalable están configurados de manera correcta; sin embargo, fíjate en los que hayas podido generar tú, para añadir ese extra de seguridad.
Mejora tu código
Es muy importante escribir bien tu código. La seguridad de tu hosting con PHP puede mejorar mucho con unos cambios muy simples. Si eres desarrollador o has subido algún archivo PHP que intervenga en tu página web, échale un vistazo a estos tips a ver si cumples todos. 😉
Encripta tus contraseñas
Además de no enviar tus contraseñas por GET, es importante que las almacenes y que trabajes con ellas de forma encriptada. Recuerda que se pueden encriptar directamente con el método password_hash y password_verify.
Emplea comillas simples
Aunque esto no es obligatorio, sí que es recomendable. Evitará posibles problemas con cadenas que puedan incluirse de manera externa. En el idioma español es muy raro encontrar comillas simples (No así en inglés, véase el uso de la tercera persona ;-P).
$cadena_bien = 'Edi eres un "crack"';
$cadena_mal="Edi eres un "crack"";
La segunda cadena nos generará un error PHP.
Cuidado con el cross site scripting
Un ataque XSS (Cross Site Scripting) consiste en introducir código HTML o JS a través de los formularios, para ejecutar consultas o instrucciones dentro de la web. Para evitar este tipo de ataques, PHP dispone de algunas funciones que evitan este tipo de comportamientos: htmlspecialchars( ), htmlentities( ), y strip_tags( ).
Normalmente, htmlspecialchars( ) es suficiente para filtrar contenido que se puede filtrar desde el navegador. Si se utiliza algún tipo de codificación distinta a UTF-8, utilizaremos entonces htmlentities( ) para ese filtrado.
Para proteger el contenido que se guarda en una tabla, podemos hacer limpieza de las etiquetas HTML antes de guardarlas con strip-tags().
Cuidado con las inyecciones SQL
Al igual que en le caso anterior, en muchas ocasiones a través de formularios introducimos campos a mostrar en una query SQL a una base de datos. Emplear objetos como PDO puede evitar las modificaciones que se podrían hacer en las consultas generadas.
Emplea _once
Aunque disminuye el rendimiento, el uso de funciones como require_once() o include_once(), reduce la probabilidad de que se incluyan funciones o archivos duplicados. De esta manera en caso de que alguien haya incluido un archivo externo, nos aseguraremos de que solo se pueda acceder a uno.
Acostúmbrate a usar switch
Las sentencias if-else son mucho más legibles y fáciles de entender, pero pueden provocar más malentendidos o ser más sencillas de falsear. No es lo mismo decir:
//es una manzana o lo que sea
if($manzana){
//sentencias
} else {
//sentencias
}
//que decir es una manzana o una pera
switch ($fruta) {
case 'Manzana':
//sentencias
break;
case 'Pera':
//Sentencias;
break;
Acostúmbrate a emplear switch cuando existan más de dos posibilidades posibles.
Buenas prácticas en desarrollo web
Además de depurar nuestro código, o mejorar de forma adecuada la configuración de nuestro hosting, existen prácticas relacionadas con el desarrollo web que también non ayudarán a incrementar la seguridad de nuestro sitio.
Camuflar las consultas
Ya hemos comentado que las consultas mediante POST son mucho más seguras que las consultas GET. Las consultas GET se ven simplemente en nuestro navegador, lo que hace muy sencillo modificarlas y hacer consultas comprometidas. Muchas veces es imposible modificar el método de consulta, pero lo que si podemos hacer es camuflarlas a través del archivo htaccess.
RewriteEngine On
RewriteRule ^([a-zA-Z0-9]+)$ paises.php?pais=$1
Con esta sencilla instrucción en nuestro htaccess en lugar de ver en el navegador: dominio-ejemplo.com/paises.php?pais=spain veremos dominio-ejemplo.com/spain
Mostrar los errores en desarrollo
Ya sea por pereza o desconocimiento, mientras desarrollamos muchas veces tenemos desactivada la opción de visionar errores, y estos suelen ser una brecha de seguridad abierta a hackers.
Que una aplicación funcione, no quiere decir que esté exenta de errores. Para ello, podemos modificar el archivo php.ini con las siguientes líneas:
error_reporting(E_ALL);
ini_set('display_errors', 1);
En dinahosting, puedes modificar parámetros de este archivo directamente desde el panel.
Como ves fijarse en los pequeños detalles es lo que puede librarnos de malhechores o hackers. Nunca vamos a estar exentos de posibles ataques o intromisiones, pero cada granito de arena que aportemos a la seguridad del hosting con PHP, u otras prácticas, lo convertirá en una web más estable y segura.
Y tú, ¿tienes un hosting seguro?¿conoces alguna táctica para aumentar aún más la seguridad de tu hosting con PHP? Te leemos en comentarios.
Deja una respuesta