Seguridad PHP

Aumenta la seguridad en tu hosting con PHP

|

Tiempo de lectura: 4 minutos

Actualizado el jueves, 20 julio, 2023

Seguridad PHP

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.

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.

Gestión de permisos en el Panel de Control para dar más seguridad a tu hosting con PHP

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.


Avatar de Edi Vieito

Comentarios

2 respuestas

  1. Avatar de Guti

    Creo que el tema de if/else vs switch es más una cuestión personal del programador. Por supuesto por eficiencia, si hay más de 3 caso, switch será más eficiente.

    1. Avatar de Edi Vieito

      Totalmente de acuerdo Guti. De hecho, ya comentamos en el post que se compruebe cuando hay más de dos posibilidades, y de esta forma evitar if/else infinitos. Muchas gracias por el aporte. 😉

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Newsletter

Suscríbete y recibe periódicamente consejos muy útiles para tu web y ecommerce 🙂 Además, te regalamos
3 guías
: Digitalización, WordPress y Ciberseguridad.

Conviértete en afiliado

Gana dinero recomendando dinahosting a todo el mundo.