Cómo mejorar el nivel de la seguridad de aplicaciones Web con PHP generando contraseñas aleatorias

Si sueles leer todos nuestros artículos, habrás visto que habitualmente nos referimos a las contraseñas, aunque lo hacemos con contenidos del tipo "¿Cómo recuperar la contraseña de Facebook?", o cosas de ese estilo, en este caso nos vamos a referir a un tema un poco mas profundo pero de interés.

Es por eso que realizar una pagina web es importante pero mantener su seguridad es una prioridad,  por lo tanto, asegurar las aplicaciones web de todo tipo de intentos de ataque forjados es el principal deber de un desarrollador web. ¿Cómo Mejorar la Seguridad de Nuestras Aplicaciones en PHP, herramienta que puedes descargar en tu ordenador.

Cómo Mejorar la Seguridad de Aplicaciones con PHP

Debes crear tus aplicaciones web lo suficientemente protectoras para que no tengan problemas de seguridad o escapatorias, lo que elimina la posibilidad de cualquier ataque malicioso.

En la mayoría de los casos, los desarrolladores deben asumir la responsabilidad y hacer todos los esfuerzos posibles para identificar las vulnerabilidades y proponer soluciones, para abordar los problemas que tengan las aplicaciones.

Índice()
  1. ¿Que es el lenguaje PHP?
  2. ¿Cómo mejorar la seguridad de nuestras aplicaciones en PHP?
    1. Secuencias de comandos entre sitios cruzados (XSS)
  3. Ataques de inyección de SQL
    1. Solicitud de falsificación de sitios cruzados XSRF / CSRF
    2. ¿Qué es un secuestro de sesión?
    3. Ocultar archivos desde el navegador
  4. Generar contraseñas aleatorias en PHP

¿Que es el lenguaje PHP?

PHP es un lenguaje popular para el desarrollo web. Es tan popular que, en algunos casos, las empresas ejecutan pocos programas de recompensas.

En estos invitan a diferentes expertos en seguridad para que analicen su aplicación desde el núcleo y sugieran las mejores prácticas de seguridad críticas de PHP como la generación de formularios con listados dinámicos.

programar con php

¿Cómo mejorar la seguridad de nuestras aplicaciones en PHP?

Es importante Actualizar PHP regularmente, En este momento, la versión más estable y más reciente de PHP disponible es PHP 7.3.6. Le recomiendo que actualice por seguridad sus aplicaciones PHP a esta nueva.

Si aún está utilizando PHP 5.6, tendrá muchas desaprobaciones al actualizar las aplicaciones de PHP. También deberá actualizar su código y cambiar algunas lógicas funcionales como el hashing de contraseñas, etc.

También hay algunas herramientas disponibles para verificar la desaprobación de su código y ayudarlo a migrarlas. He enumerado algunas herramientas a continuación:

  • PHP 7 MAR
  • Phan
  • Si está utilizando PHPStorm, entonces puede usar la Inspección de compatibilidad de PHP 7, que le mostrará qué código le causará problemas.

Secuencias de comandos entre sitios cruzados (XSS)

Los scripts entre sitios son un tipo de ataque web malicioso en el que se inyecta un script externo en el código o la salida del sitio web.

El atacante puede enviar el código infectado al usuario final, mientras que el navegador no puede identificarlo como un script de confianza.

Este ataque ocurre principalmente en los lugares donde el usuario tiene la capacidad de ingresar y enviar datos. El ataque puede acceder a cookies, sesiones y otra información sensible sobre el navegador.

Puedes resolver este ataque usando htmlspecialchars. También al utilizar ENT_QUOTES, puede escapar de comillas simples y dobles.

Mientras tanto, los ataques XSS también pueden ejecutarse a través de atributos, esquemas URI codificados y codificación de código.

Ataques de inyección de SQL

La inyección SQL es el ataque más común en las secuencias de comandos PHP. Una sola consulta puede comprometer toda la aplicación. En el ataque de inyección SQL.

El atacante intenta alterar los datos que está pasando a través de consultas. Supongamos que está procesando directamente datos de usuario en consultas de SQL y de repente, un atacante anónimo utiliza en secreto diferentes caracteres para evitarlo.

El nombre de usuario $ puede contener datos alterados que pueden dañar la base de datos, incluida la eliminación de toda la base de datos en un abrir y cerrar de ojos.

Entonces, ¿cuál es la solución? DOP. Le recomiendo que siempre use declaraciones preparadas. DOP le ayuda a asegurar consultas SQL.

como proteger con php

Solicitud de falsificación de sitios cruzados XSRF / CSRF

Es bastante diferente a los ataques XSS. En el ataque CSRF, el usuario final puede realizar acciones no deseadas en los sitios web autenticados y puede transferir comandos maliciosos al sitio para ejecutar cualquier acción no deseada.

CSRF no puede leer los datos de la solicitud y se dirige principalmente a la solicitud de cambio de estado mediante el envío de cualquier enlace.

También datos modificados en las etiquetas HTML. Puede forzar al usuario a realizar solicitudes de cambio de estado, como transferir fondos, cambiar sus direcciones de correo electrónico, etc.

¿Qué es un secuestro de sesión?

El secuestro de sesión es un tipo particular de ataque web malicioso en el que el atacante roba en secreto el ID de sesión del usuario.

Esa ID de sesión se envía al servidor donde la matriz $ _SESSION asociada valida su almacenamiento en la pila y otorga acceso a la aplicación.

El secuestro de la sesión es posible a través de un ataque XSS o cuando alguien obtiene acceso a la carpeta en un servidor donde se almacenan los datos de la sesión.

Ocultar archivos desde el navegador

Si ha utilizado micro-marcos de PHP, entonces debe haber visto la estructura de directorios específica que asegura la colocación de los archivos correctamente.

Los frameworks permiten tener diferentes archivos como controladores, modelos, archivos de configuración (.yaml), etc. en ese directorio, pero la mayoría de las veces el navegador no procesa todos los archivos.

Sin embargo, están disponibles para ver en el navegador. Para resolver este problema, no debe colocar sus archivos en el directorio raíz sino en una carpeta pública para que no estén accesibles todo el tiempo en el navegador.

Muy bien ya hemos tocado el tema de como proteger nuestra página web con PHP y como mejorar la seguridad de la misma, ahor hablaremos de cómo generar claves o contraseñas aleatorias con esta misma herramienta.

Cómo Generar Contraseñas Aleatorias Usando PHP

Sin embargo, sabemos que el problema de muchos usuarios no tiene que ver en realidad con cómo recuperar sus contraseñas, algo que saben hacer a la perfección, sino que pretenden saber de qué modo generar contraseñas más fiables.

En este sentido tenemos que decir que prácticamente todos los sitios en Internet y plataformas que usamos en el día a día nos obligan a colocar una contraseña, y por ello cada vez ponemos menos énfasis en su seguridad, apostando por recordarlas fácilmente.

Por tal motivo, y ante la cantidad de consultas recibidas en este sentido, a continuación queremos enseñarte un truco para generar contraseñas aleatorias en PHP de una forma por demás fácil y rápida, para que siempre tengas una nueva a mano.

Generar contraseñas aleatorias en PHP

Bien, llegados a este punto tienes que saber que a continuación vamos a ofrecerte dos métodos distintos para la generación de contraseñas, uno de los cuales es muy sencillo, y otro que tiene algunas complicaciones adicionales, aunque genera contraseñas más seguras.

Bien, el primero de los métodos podría ser éste:

substr(md5(uniqid()), 0, 10);

Aquí tienes que tener en cuenta que estamos en presencia de una fórmula que puede sacarnos de apuros, ya que en apenas unos segundos será capaz de generar una contraseña que nos sirva en casi todos los dispositivos y plataformas.

Podemos ver que la misma se vale de varios métodos de PHP para la generación de la contraseña, incluyendo algunas de las funciones más habituales de este lenguaje, que de más está decir que no es apto para todo público.

generar claves aleatorias

El pequeño inconveniente de ese primer truco que hemos mencionado es que, en determinados casos, puede que la contraseña resultante no sea tan segura como debería, y es en esos casos cuando deberías apostar por esta segunda solución:

<?php function generar_password_complejo($largo){
$cadena_base = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
$cadena_base .= '0123456789' ;
$cadena_base .= '!@#%^&*()_,./<>?;:[]{}\|=+';

$password = '';
$limite = strlen($cadena_base) - 1;

for ($i=0; $i < $largo; $i++)
$password .= $cadena_base[rand(0, $limite)];

return $password;
}?>

En esta ocasión estamos en presencia de una función desde la cual es posible lanzar absolutamente todas las operaciones que permiten generar nuestra contraseña aleatoria para luego usar en redes sociales, sitios de Internet, etc.

Lo mejor de esta gran función es que nos permite generar una contraseña aleatoria que cuente con letras, números y caracteres especiales, que son los requisitos que suelen pedir los servicios más exigentes al respecto.

El sistema se encargará por su propia cuenta de ir tomando contraseñas a partir de una casi interminable lista de bases de datos, de manera que podamos crear una que se ajuste exactamente a lo que necesitamos.

En este punto, podrás ver una serie de contraseñas que estarán listas para que las utilices cuando lo consideres necesario.

A medida que ejecutas la función anteriormente mencionada, por cada ejecución, va a generarse una nueva contraseña, de manera tal que si por algún motivo requieres de varias, sólo tienes que seguir lanzándola las veces que sea necesario.

Por supuesto, no quedan dudas de que más allá de las complicaciones propias de este procedimiento, generar una contraseña gracias al mismo es una solución mucho más atractiva que apostar por el 123456 de siempre.

De este modo estaríamos dejando atrás uno de los principales inconvenientes con los que nos encontramos como usuarios cuando queremos darnos de alta en cualquier tipo de servicio o plataforma que requiera de una contraseña, intentando evitar robos de información personal.

Como explicábamos antes, la posibilidad de generar contraseñas PHP puede sonar algo complicada para la mayoría de los usuarios, por lo que si buscas algo más sencillo, deberías apostar por los programas para generar contraseñas que también existen en la web.

generar claves

Una vez que hayas usado estas contraseñas y en caso de haberlas perdido, recuerda que existen programas para recuperar contraseñas en Windows y otros para diferentes dispositivos que han sido especialmente desarrollados para ello.

¿Has podido generar tus contraseñas aleatorias con este tutorial que acabamos de enseñarte?

Subir