¿Qué necesitan saber los desarrolladores web principiantes sobre la seguridad web?

Si es un desarrollador web y está pensando en la seguridad web, ya ha dado el primer paso para aprender a escribir código más seguro. La seguridad ha estado completamente aislada del proceso de desarrollo durante mucho tiempo, por lo que muchos desarrolladores lo encuentran intimidante. Aquí hay un par de consejos para comenzar:

  • Nunca confíes en la entrada del usuario. Siempre desinfecte y valide la entrada del usuario. Esto también se aplica a los objetos serializados: tratar los datos deserializados como entradas confiables es un error de seguridad muy común.
  • Use la lista blanca en lugar de la lista negra. Si está en la lista negra, debe tener en cuenta todas las opciones inválidas posibles y si pierde algo, podría exponer su aplicación web a los piratas informáticos. Por eso es mucho mejor simplemente incluir en la lista blanca lo que es válido.
  • Familiarícese con OWASP Top 10. OWASP Top 10 es una lista de las vulnerabilidades más comunes que le muestra lo que debe tener en cuenta al escribir código. La versión más reciente de la lista de los 10 principales se lanzó en noviembre de 2017 y comprender las 10 categorías de vulnerabilidad enumeradas lo ayudará a obtener una comprensión básica de la seguridad.
  • Tenga cuidado al usar scripts de terceros. Los scripts de terceros le permiten agregar funcionalidad a su sitio sin tener que escribir algo desde cero, pero también conllevan riesgos. Los scripts de terceros pueden ser tan vulnerables como su propio código, especialmente si el recurso se carga desde una fuente externa.
  • Estar al día. La seguridad nunca se detiene. No hace mucho tiempo, las pruebas de penetración trimestrales o incluso anuales eran lo que las compañías hacían para mantenerse a salvo. Esto ya no es suficiente ya que la seguridad se desarrolla tan rápidamente que surgen nuevas vulnerabilidades todos los días. Lo que es seguro hoy podría ser vulnerable mañana. Los desarrolladores deben estar alerta todo el tiempo, listos para aprender nuevos métodos de remediación y comprender nuevas vulnerabilidades. La comunidad netsec en reddit es un gran lugar para seguir los últimos desarrollos en seguridad web. Puede parecer complicado al principio, pero a medida que lea más artículos escritos, se acostumbrará a pensar en la seguridad y considerarla desde la primera línea de código.
  • Use monitoreo automatizado. Es imposible detectar manualmente cada vulnerabilidad en su sitio web. Los escáneres de vulnerabilidad automatizados como Detectify pueden ayudarlo a identificar problemas de seguridad y ver exactamente dónde es vulnerable su sitio. Luego puede remediar rápidamente las vulnerabilidades y mejorar la seguridad de su sitio web.

La mejor fuente que he encontrado para comprender esto es OWASP, The Open Web Application Security Project. Está lleno de explicaciones y consejos sobre cómo el manejo seguro de la entrada del usuario puede ayudarlo a reducir el riesgo de inyección XSS y SQL.

Un tesoro particular es la hoja de trucos de evasión del filtro XSS https://www.owasp.org/index.php/ … que ofrece ejemplos concretos de cómo los sombreros negros pueden tratar de abusar de sus páginas web o aplicaciones.

Además, si está utilizando MySQL, use declaraciones preparadas con MySQLi o PDO.

Adicional:
Aquí hay otro tesoro de información útil: Hojas de referencia de Common Assessment Tool

Siempre que haya formularios involucrados, use siempre el token CSRF.

Cuando se trata de información confidencial, use HTTPS.

Ten cuidado con tus mensajes de error. Son suficientes para algunos hackers.

Valide siempre en el backend.

Use un ORM. O una mejor biblioteca de base de datos.

No pienses por un segundo que la solicitud POST es mejor que la solicitud GET. Desinfecte y valide todo.

Verifique el archivo mime escrito y no hay extensiones.

  • No confíes en las entradas de los usuarios.
  • Validar entradas de usuario.
  • Desinfecte y escape las entradas del usuario.
  • No permita que se ejecuten entradas de usuario (ni en el servidor ni en otros clientes).
  • Todo lo que se envía desde el cliente es una entrada del usuario (ya sea que lo haya incorporado o no).

OWASP, que significa Open Web Application Security Project, es imprescindible para todos los desarrolladores web y analiza varios aspectos de seguridad. Tienen OWASP Top Ten Project, que enumera las principales vulnerabilidades de seguridad web cada pocos años y a continuación se muestra la lista que publicaron para 2013.

  • Inyección A1
  • A2 Autenticación rota y gestión de sesiones
  • A3 Cross-Site Scripting (XSS)
  • A4 Referencias inseguras de objetos directos
  • A5 Configuración incorrecta de seguridad
  • A6 Exposición de datos sensibles
  • A7 Control de acceso de nivel de función faltante
  • A8 Falsificación de solicitud de sitios cruzados (CSRF)
  • A9 Uso de componentes con vulnerabilidades conocidas
  • A10 Redirecciones y reenvíos no validados

Estoy de acuerdo con la lista de los 10 principales de OWASP, debe haber una razón por la cual existe, ¿verdad?

En Rangeforce, en realidad, nos especializamos en la capacitación de desarrolladores y yo mismo soy desarrollador de software. Al entrenar a muchas personas que he encontrado, leer sobre estas cosas no es saberlo. Entonces, lo que hacemos es crear una red de sandbox real con servidores reales y lo guiamos a través del ataque y la defensa contra XSS, SQLi, CSRF y muchos otros temas.

No es gratis, pero probablemente te beneficiarás de nuestros laboratorios introductorios, así que échales un vistazo registrándote en RangeForce. Después del correo electrónico de confirmación, ingrese el código “quora17” y disfrute de 3 laboratorios con nosotros. Cuando digo “sobre nosotros” quiero decir que ponemos mucho esfuerzo y recursos en esto, así que espero que te beneficies de ello it

Suponga que todo lo dirigido a sus servidores es un ataque. Nunca confíes en nada enviado por un cliente. No pienses en SSL como panacea. Todo debe usar SSL, pero los atacantes pueden atacar su sitio habilitado para SSL utilizando las mismas herramientas que para los ataques HTTP normales. Cree su aplicación y contrate a un consultor de seguridad calificado para que la rediseñe por seguridad. Eso es más barato que convertirse en un experto en seguridad.

Trate cualquier información que provenga de cualquier fuente no verificada (incluido y especialmente el cliente) como si contuviera todas las vulnerabilidades posibles. En otras palabras, debería:

  • ser desinfectado
  • ser validado
  • NO ser ejecutado

Y los servicios externos y los clientes NUNCA deberían tener acceso al código subyacente.

Comience por aprovechar los marcos web, su aplicación ya cubrirá la mayoría de las mejores prácticas en términos de seguridad web.

Cuando trabajaba con PHP, lo único que no supe hasta mucho después, cuando supe que era desinfectar y escapar de las cadenas para evitar las inyecciones de MySQL.

More Interesting

¿La inclusión de mis ambiciones empresariales en mi currículum me impedirá obtener un trabajo de ingeniería de software de nivel básico?

¿Qué cursos en línea debo tomar para estudiar ciencias de la computación para que mi conocimiento sea equivalente al de un graduado de 4 años en ciencias de la computación?

Teniendo en cuenta que soy un desarrollador de Java y quiero pasar a la gestión, ¿qué certificación debo obtener a continuación: COBIT o TOGAF?

¿Hay una universidad que se centre mucho en la programación en lugar de la informática? Si es así, ¿es la física un requisito previo como requisitos de entrada? ¿Aceptarían un aprendizaje formal en informática como fondo?

¿Hay alguna carrera que pueda seguir con la biología y la informática?

¿Cuáles son las oportunidades laborales que uno puede esperar después de completar una maestría de una universidad alemana?

¿Cuáles son los campos informáticos más interesantes?

¿Cómo funciona realmente un codificador profesional?

Cómo convertirse en desarrollador de aplicaciones

¿Qué es mejor, CSE en MNNIT o DTU?

¿Debo seguir la universidad o trabajar?

¿Cuáles son las ventajas y desventajas de obtener un doctorado directo de IIT o IISc en informática después de B.Tech?

Cómo aumentar más mis habilidades en informática

¿Cuál es la tarifa actual para un trabajo de verano de pasantía en informática?

¿Cómo debo prepararme para hacer una investigación en informática siendo un estudiante universitario?