Cuál es su debe tener métodos de defensa a los ataques web comunes como XSS, SQL Injection, denegación de servicio, etc.?ataques a aplicaciones web y debe tener métodos de defensa
Edit: He recogido sus respuestas en descripciones de Wikipedia. Y añado algunas preguntas adicionales para tener una referencia completa.
Sql Injection
inyección SQL es un técnica de inyección código que explota una vulnerabilidad de seguridad que ocurre en la capa de base de datos de una aplicación. La vulnerabilidad está presente cuando el usuario de entrada es incorrectamente filtró cadena de caracteres de escape literales incrustados en las instrucciones SQL o la entrada del usuario no está fuertemente tipado y ejecutado de este modo de forma inesperada. Es una instancia de una clase más general de vulnerabilidades que pueden ocurrir cuando una programación o scripting idioma está incrustado dentro de otro.
- No confíe en la entrada del usuario y validar que tan pronto como sea posible.
- No cree SQL a partir de la entrada de usuario sin formato; use parámetros en su lugar.
Cross Site Scripting (XSS)
Cross-site scripting es un tipo de vulnerabilidad de seguridad equipo se encuentran típicamente en aplicaciones web que permiten la inyección de código por los usuarios de Internet maliciosos en el páginas web vistas por otros usuarios. Los ejemplos del código incluyen código HTML y scripts del lado del cliente. Una vulnerabilidad de vulnerabilidad de scripts entre sitios explotados puede ser ser utilizada por los atacantes para eludir los controles de acceso como la misma política de origen .
- Nunca salida o ejecutar el contenido enviado por los usuarios pie de la letra.
- HTML-codifica toda la salida.
Un ataque de denegación de servicio
Un ataque de denegación de servicio (DoS ataque) o distribuido ataque de denegación de servicio (ataque DDoS) es un intento para hacer que un recurso de computadora no esté disponible para los usuarios previstos de .Aunque los medios para llevar a a cabo, los motivos para, y los objetivos de un ataque DoS puede variar, generalmente consiste de los esfuerzos concertados y malévolas de una o varias personas para prevenir un sitio internet o servicio de funcione eficiente y en absoluto, temporal o indefinidamente.
Sé que parece imposible evitar los ataques de denegación de servicio mediante programación, pero ¿qué opinas?
fuerza bruta Ataques
En el criptoanálisis, un ataque de fuerza bruta es un método de derrotar a un esquema criptográfico de forma sistemática tratar un gran número de posibilidades ; por ejemplo, un número grande de las claves posibles en un espacio de clave para descifrar un mensaje. En la mayoría de los esquemas, la posibilidad teórica de un ataque de fuerza bruta es reconocida, pero está configurada de manera tal que sería computacionalmente imposible de llevar a cabo.
- bloquear una cuenta cada vez demasiados intentos de conexión que salió mal. Nunca permita reintentos ilimitados.
- Agregue un retraso cuando la contraseña introducida sea incorrecta.
Algunas preguntas adicionales:
¿Que opinas sobre robots web que tratan de publicar entradas de acuerdo a su contenido? Por ejemplo SO está usando una validación de imagen.
¿Qué opinas sobre javascript eval function?
¿Hay alguna manera de acceder al contenido del servidor que no estuvo expuesto al exterior? Por ejemplo, tengo una página que inserta algunos registros importantes en mi base de datos, y solo sé que es url. ¿Hay alguna manera de obtener este tipo de archivos? Sé que puedes establecer algunas reglas de seguridad sobre eso.
(NOTA: listado de directorio está desactivada y que la sede de este archivos.)
Gracias por las respuestas!
Supongo que no significa necesariamente un retraso en la página devolviendo el mensaje de "contraseña incorrecta", pero bloqueando la cuenta por un período de tiempo? Un retraso en la carga de la página no les impedirá revisar muchas páginas en paralelo (tal vez desde diferentes direcciones IP). – rmeador
Puede retrasar la página devolviendo el mensaje de contraseña incorrecta, siempre que lo haga para todos los intentos de iniciar sesión con un nombre de usuario dado, y restablecer el retraso en un inicio de sesión exitoso. –
@rmeador: correcto, ese retraso no tiene que ser largo. Es suficiente tener un retraso de 1 segundo. (Aumenta si la contraseña es incorrecta varias veces.) –