Si limpia la entrada del navegador, ¿cómo aumenta la seguridad de un sitio web?

No puedo afirmar que sé “mucho” sobre las secuencias de comandos del lado del servidor, pero algunas.

El mayor riesgo en el pasado han sido los ataques de inyección SQL en los que algo ingresado en un navegador se incluye como parte del texto del SQL que se envía a la base de datos. Esto no es un problema si el valor se envía como un parámetro a la consulta o actualización, pero es un problema si el desarrollador tenía la intención de actualizar una dirección de correo electrónico, pero la dirección de correo electrónico escrita es “; seleccione * de los usuarios;” , lo que hace que la consulta enviada al servidor de la base de datos sea en realidad dos comandos, el primero mal formado (por ejemplo, destinado a actualizar el correo electrónico), el segundo es el comando ingresado en el navegador y posiblemente devuelva una lista de la tabla de usuarios al navegador. Esperemos que todos los desarrolladores web hayan recibido el mensaje de que las entradas deben ir a los parámetros)

En el futuro, si está permitiendo que algo se quede en su servidor o en la base de datos que podría ser un problema, corre un ligero riesgo de que esto pueda manejarse incorrectamente en otras consultas de la base de datos.

También es bueno asegurarse de que su conjunto de datos no sea basura. Debería haber algunas normas: si su sitio web y los procesos comerciales requieren que el usuario final ingrese una dirección válida, entonces sería bueno validar que la ciudad / estado / país existe, o que el código postal es válido, etc. Esto no es No es necesariamente un problema de seguridad.

Los usuarios de navegadores emprendedores también pueden aumentar el código javascript o la funcionalidad del lado del cliente para agregar nuevos elementos a los menús desplegables para los estados a los que no envía o accede a los descuentos, por lo que el lado del servidor debe validar cada entrada en un formulario y cualquier dato del cliente, sin la suposición de que el cliente limitará los valores solo a aquellos que sean válidos.

Desbordamiento de búfer: puede llegar a ser un problema menor con los compiladores modernos, pero aún es posible explotar problemas, como el envío a ciegas de datos que son demasiado grandes para una base de datos (en la actualidad, la base de datos generalmente lo truncaría y protegería), pero si se descubre que el código del lado del servidor maquina mucho los datos o el almacenamiento en caché de valores, un atacante podría explotar eso y comenzar a enviar cientos de cadenas de 1 MB para que su servidor caiga debido al uso excesivo de memoria.

Hay mucha diferencia entre los scripts del lado del cliente y del lado del servidor.
Por ejemplo, tenemos un formulario de inicio de sesión en el lado del cliente

Ingresar identificación: ________
Contraseña:________

Ahora suponga que no tengo la ID de inicio de sesión ni ninguna contraseña y quiero omitir este formulario de inicio de sesión. Para eso solo tengo que ingresar ‘o’ ‘=’
tanto en ID de inicio de sesión como en Contraseña

ID de inicio de sesión: ‘o “=’
Contraseña: ‘o “=’

Ahora, en este caso, el ID de inicio de sesión y la contraseña son la entrada del navegador del cliente, por lo que si no elimina los caracteres no deseados de estas entradas, lo que sucederá es que enviará directamente estas entradas al script del lado del servidor
Digamos que el script del lado del servidor está en PHP

$ username = $ _ POST [‘nombre de usuario’];
$ contraseña = $ _ POST [‘contraseña’];
$ query = “seleccione nombre de usuario, pase de usuarios donde username = ‘$ username’ y password = ‘$ password’ limit 0,1”;
$ resultado = mysql_query ($ consulta);
$ filas = mysql_fetch_array ($ resultado);
if ($ filas)
{
echo “Has iniciado sesión correctamente”;
}
más
{
Eco “Nombre de usuario y contraseña incorrectos”;
}

En el código anterior, estamos pasando ‘o “=’ en $ username y $ password
Ahora lo que realmente hace es:

select username,pass from users where username='' or ''='' and password='' or ''='';

Entonces esta consulta devolverá el mismo no. de filas como en tu mesa. Entonces, de esta manera, inyecto mi código en la consulta SQL. Espero que entiendas cómo funcionan las inyecciones SQL.
Hoy en día, muchos desarrolladores están utilizando técnicas tradicionales (como las anteriores) para recuperar o insertar datos en la base de datos mediante consultas directas. Esto se usa principalmente en aplicaciones PHP, Ruby. Por otro lado, Java y .NET están un paso adelante solo porque están patrocinados por marcas muy grandes. No sé acerca de Java, pero en .NET usamos Entity Framework que maneja toda la manipulación de datos SQL por sí sola.

La mejor práctica es eliminar los caracteres no deseados de la entrada del navegador como:

$ username = $ _ POST [‘nombre de usuario’];
$ cleanUsername = preg_replace (“~ [^ a-z0-9:] ~ i”, “”, $ username);

Igualmente puedes hacerlo por contraseña.
Gracias por leer espero que lo entiendas !!
No dudes en hacer cualquier pregunta.

La desinfección de la entrada del lado del cliente es esencial para prevenir ataques de inyección SQL.

More Interesting

Cómo proteger Firefox de virus

¿Cómo comienzan las personas a crear virus informáticos como Stuxnet?

¿De dónde obtienen sus datos KeywordSpy y otras herramientas de inteligencia competitiva de palabras clave como Spyfu e Ispionage?

¿Cuáles son algunos ejemplos de vulnerabilidades y vulnerabilidades en cualquier sitio web y cualquier software?

¿Pudo el FBI identificar los correos electrónicos de Paula Broadwell, Kelley y Petraeus sin una orden judicial?

¿Qué es bcrypt?

Mi teléfono celular y mi MacBook han sido pirateados. ¿Qué debo hacer?

¿Por qué no se avergüenza Apple de ser el último en parchear su sistema contra el error de shell Bash?

¿Por qué el gobierno de los EE. UU. Reveló que había pirateado con éxito el iPhone, en lugar de simplemente dejar caer la demanda en silencio?

¿En qué medida es más fácil la seguridad de la red o el desarrollo de aplicaciones?

Si un país tuviera piratas informáticos altamente calificados casi ilimitados, ¿qué tipo de daño podrían infligir a China?

¿Cómo se usó Microsoft Windows tan ampliamente cuando ha tenido problemas importantes con cada versión durante 32 años y aún tiene problemas de seguridad?

Al elegir una contraseña, ¿es una buena práctica repetir una contraseña de 6 u 8 dígitos para que sea el doble y, por lo tanto, más difícil de descifrar?

¿Me puede sugerir algún buen software antivirus que tenga la función de control parental?

¿Cómo se protege el ancho de banda de radio de los atacantes?