preloader

Consejos de seguridad del sitio web

En este blog veremos algunos de nuestros mejores consejos para hacer que su sitio web esté a salvo de los piratas informáticos. Puede tener un sitio web personal / comercial o simplemente pensar en crear uno. Puede tener la impresión de que su sitio no tiene nada por lo que valga la pena ser pirateado, pero los sitios web están en peligro todo el tiempo. La gran mayoría de las infracciones de seguridad del sitio web no son solo para robar datos personales o para utilizar secuencias de comandos entre sitios para imitar a otro sitio. Los piratas informáticos pueden atacar y utilizar sus servidores como retransmisión de correo electrónico para correo no deseado, configurar un servidor web temporal, para almacenar archivos de naturaleza ilegal. Otros ejemplos son, usar su servidor / s como parte de una botnet o minar Bitcoins. Incluso podría ser golpeado por Ransomware, lo que significa que se vería obligado a pagar para tener sus archivos y carpetas accesibles.

Todo esto es serio y sin el conocimiento o la comprensión adecuados, puede ser muy fácil para estos piratas informáticos encontrar agujeros y explotarlos. Es bastante común ver a grandes empresas ser golpeadas por violaciones de seguridad en las noticias, creo que esto solo muestra lo difícil que es protegerse de tales ataques. 

Los piratas informáticos ejecutarán regularmente scripts automatizados a través de Internet con la intención de atrapar agujeros en los sitios web a los que pueden explotar. Esta es la forma principal en que muchas empresas / individuos casuales quedan atrapados.

¡Ahora entremos en los mejores consejos! 

Mantenga el software actualizado

Puede parecer muy obvio para algunos usuarios de Internet, pero asegurar que mantenga actualizado el software es vital para mantener su sitio seguro. La razón por la que tenemos actualizaciones para aplicaciones, software antivirus y sistemas operativos, es porque constantemente se descubren nuevas formas de ataques a diario y se realizarán parches para estos programas, para asegurarse de que no sean vulnerables a ellos. Como ya puede ver, no actualizar significaría que si un nuevo ataque impacta y no tiene ese parche de seguridad, no estaría en la mejor situación.

En términos de seguridad del sitio web, debe asegurarse de que el sistema operativo en el servidor web esté actualizado junto con cualquier otro software allí. Si está utilizando un tercero para alojar su sitio web, entonces no necesita preocuparse demasiado, ya que se le notificará de una nueva actualización o mejor aún, se actualizarán automáticamente por usted.

Puede ser bastante complicado mantenerse al día con todas las dependencias que pueda tener en su servidor web, sin embargo, muchos desarrolladores usan herramientas como Gemnasium para obtener notificaciones de actualización automática para cuando se encuentra una vulnerabilidad en uno de sus componentes de su sitio web.

Inyección SQL

La inyección SQL es uno de los ataques más comunes en sitios web, ya que los hackers pueden ejecutar fácilmente scripts para obtener datos de una base de datos. La inyección SQL es una técnica de inyección de código que puede destruir, editar o incluso agregar a su base de datos. Esta forma de ataque es la colocación del código malicioso en las declaraciones SQL que luego se ingresan en la entrada de una página web, como un formulario.

Como la inyección SQL mencionada anteriormente, generalmente ocurre cuando el sitio web solicita una entrada del usuario. Lo más común será un formulario que solicite nombre de usuario / ID de usuario, sin embargo, el hacker ingresará una declaración SQL que se ejecutará sin saberlo en su base de datos. A continuación se muestra un ejemplo de código SQL escrito para un formulario, crea una instrucción SELECT agregando una variable (txtGetUserID) a una cadena de selección. Esa variable se obtiene de la entrada del usuario (getUserID). 

txtGetUserID = getRequestString (“GetUserID”);
txtSQL = “SELECT * FROM Users WHERE UserId =” + txtGetUserID;

Ahora es posible que no esté familiarizado con SQL, sin embargo, es importante saber especialmente si es un desarrollador web. Mirando el ejemplo que he dado anteriormente, el propósito original era crear una declaración SQL para seleccionar un usuario de una base de datos con una identificación dada. Esta identificación es lo que el usuario ingresa en el formulario. 

Si no hay nada en el lugar para evitar que un usuario ingrese una entrada ‘incorrecta’ (que no debería ser otra cosa que números). Luego, un hacker puede ingresar el siguiente código en el cuadro de entrada.

ID de usuario: 105 O 1 = 1

Esto significaría que la instrucción SQL se vería así:

SELECCIONE * DE usuarios DONDE GetUserID = 105 O 1 = 1;

La declaración SQL anterior sería válida y, a su vez, devolvería TODAS las filas de la tabla ‘Usuarios’, esto se debe a que OR 1 = 1 siempre es VERDADERO. Así que ahora puede imaginar si esa tabla de ‘Usuarios’ contuviera nombres de usuario y contraseñas para miles de personas, cuán grande sería una violación de seguridad. Para proteger un sitio web de la inyección SQL, puede usar parámetros SQL. Los parámetros SQL son valores que se agregan a una consulta SQL en tiempo de ejecución, de manera controlada.

Un ejemplo en PHP de esto sería:

$ stmt = $ dbh-> prepare (“INSERTAR EN LOS
VALORES de los clientes (nombre del cliente, dirección, ciudad) (: nam ,: add,:  cit)”);
$ stmt-> bindParam (‘: nam’, $ txtNam);
$ stmt-> bindParam (‘: agregar’, $ txtAdd);
$ stmt-> bindParam (‘: cit’, $ txtCit);
$ stmt-> execute ();

Error de mensajes

Sin embargo, esto es solo un pequeño punto a tener en cuenta, debe considerarse al 100% al desarrollar su sitio web. Cuando desarrolle su sitio web, lo más probable es que prepare resultados para el usuario cuando ocurra un error, este error que puede mostrar información como por qué el error causó y detalles del código. Debe tener cuidado con la cantidad de información que proporciona en sus mensajes de error, ya que desea asegurarse de que no filtren secretos presentes en su servidor (contraseñas de bases de datos). Mantenga su error detallado en el registro del servidor y solo proporcione al usuario la información que necesita.

Contraseñas

Hoy en día, todo el mundo está educado principalmente con el conocimiento de que debe usar una contraseña segura y compleja. Es crucial utilizar contraseñas seguras para su servidor y área de administración web en un CMS, pero también es vital insistir en que los usuarios creen contraseñas seguras para proteger sus cuentas.

Si vas a registrarte en un sitio web, encontrarás que la mayoría se ejecuta con un requisito de contraseña similar, esto es algo así como tener 8 caracteres, incluyendo una letra mayúscula y un número; reduciendo las posibilidades de que sea accesible. Las contraseñas deben almacenarse en una base de datos como un valor cifrado. Una forma de hacerlo es usando un algoritmo hash como SHA. El proceso en el que trabaja SHA es tomar la contraseña del usuario y ejecutarla a través de su algoritmo que convierte la contraseña en una salida de un tamaño fijo, que será una mezcla de números y letras. Cuando el usuario inicia sesión en el sistema, su contraseña se vuelve a cifrar y solo se comparan los valores cifrados.

En caso de que alguien piratee y robe sus contraseñas, el uso de contraseñas hash podría ayudar a limitar los daños, ya que no es posible descifrarlos. La mejor forma en que un hacker podría obtener acceso es usando un diccionario o atacando con fuerza bruta, lo que significa que esencialmente intentan adivinar tantas combinaciones como sea posible hasta que lo logren. Como puede imaginar, es muy poco probable que esto tenga éxito; si estás usando contraseñas seguras

Validación

La validación debe hacerse siempre en el lado del cliente y del lado del servidor. El navegador puede detectar fallas simples, como los campos obligatorios que están vacíos o que alguien ingrese texto en un formulario de solo números. Se pueden omitir, por lo que es imprescindible que el lado del servidor esté configurado para la validación, ya que si no lo hace, podría introducirse código malicioso en su base de datos, lo que obviamente podría generar muchos problemas.

XSS (secuencias de comandos entre sitios) 

Cross-Site Scripting es muy efectivo ya que muchos usuarios sin saberlo estarán en un sitio web mientras un hacker está robando su información. XSS funciona al inyectar JavaScript malicioso en una página web, que luego se ejecutará en el navegador de los usuarios y luego puede cambiar el contenido de la página y robar datos para enviarlos al atacante. Un ejemplo de esto sería si tuviera un sitio web que tuviera una sección de comentarios y este formulario de entrada de comentarios no tuviera validación. El atacante puede ingresar etiquetas de script y JavaScript en el campo de entrada, que luego este código se ejecutará en el navegador de cada usuario y robará su cookie de inicio de sesión. Esto permitiría al atacante tomar el control de todas las cuentas de usuario que vieron el comentario.

HTTPS

A pesar de que HTTPS no detiene el malware, el phishing, el spam, los ataques a sitios vulnerables u otros ataques de Internet, sigue siendo bueno en lo que hace. Sin embargo, no se hizo para detener este tipo de ataques, solo asegura la conexión entre el host y el sitio web. 

El cambio hacia el uso de HTTPS es excelente para Internet y Google ha estado tratando de presionar a la mayoría de los sitios para que lo usen y los sitios que no se presionan van al final de la pila. Funciona muy bien para detener los ataques de hombre en el medio, ya que asegurará que la conexión entre el usuario y el servidor web no pueda ser interceptada y es por eso que se usa ampliamente para pagos, por lo que no se pueden robar datos personales.

Subidas de archivos

Permitir que los usuarios carguen archivos en su sitio web puede ser un gran riesgo para la seguridad del sitio web, incluso si se trata de cambiar su imagen de perfil para su cuenta. El riesgo es que cualquier archivo cargado podría contener un script malicioso que podría ejecutarse en cualquier momento y eliminar el sitio web. Si su sitio web tiene una sección de carga de archivos, entonces debe asegurarse de que cada carga sea tratada con gran sospecha y se requiera validación. No puede confiar únicamente en la extensión del archivo para verificar que un archivo es una imagen, ya que puede falsificarse fácilmente. Algunos formatos de imagen también permiten una sección de comentarios en la que se puede ingresar código malicioso.

Para detener esto, desea asegurarse de que los usuarios no puedan ejecutar cualquier archivo que carguen. Por defecto, los servidores web no intentarán ni intentarán ejecutar archivos con extensiones de imagen, sin embargo, no verifican completamente la extensión del archivo tal como se envió; El siguiente nombre ha obtenido acceso a través de servidores varias veces. (image.jpg.php)

El siguiente código muestra un ejemplo de un archivo .htaccess que solo permitirá el acceso a los archivos de configuración evitando el ataque de doble extensión mencionado anteriormente.

Negar todo

     <Archivos ~ “^ \ w + \. (Gif | jpe? G | png) $”>

      orden negar, permitir

     permitir de todos

     </Files>

¿Has aprendido algo hoy?

Con suerte ha recogido algunos puntos útiles a tener en cuenta al desarrollar y mantener sitios web. Si tiene más preguntas o necesita un sitio web en desarrollo, asegúrese de contactarnos a través de hola@twa.pe o llame al 932892024.

Related Post

Deja una respuesta

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