¿Es posible asegurar aplicaciones web en estos días?

¡Por supuesto! Es realmente difícil cuando se usan algunas de las herramientas comunes.

Si estás usando PHP, el mazo está en tu contra. El lenguaje no parece tomar en serio la seguridad. Y el enfoque mismo de generar páginas web en el servidor es intrínsecamente arriesgado: básicamente, todo el código relacionado con su sitio debe ser seguro, incluido el código que de otro modo solo formatea las páginas.

Si, en cambio, utiliza páginas estáticas o generación de sitios estáticos, y aloja en algún lugar como Amazon CloudFront, Amazon está haciendo la mayor parte del trabajo con respecto a la seguridad de su servidor. Puede hacer que su aplicación sea dinámica mediante el uso de marcos de clientes como React, Angular o Vue.js. El único código que le queda por proteger es cualquier código API que cree.

Eso a menudo se conoce como la “superficie de ataque” de su aplicación. Si la aplicación cliente que se ejecuta en el navegador no tiene acceso a nada que el usuario no debería ver, entonces no debe preocuparse por protegerla.

Todavía puedes arruinar esto, por supuesto. La API del servidor debe escribirse para no confiar en el cliente. Si envía una lista de objetos para comprar y sus precios al cliente, pero luego confía en el precio que recibe del cliente cuando el usuario realiza un pedido, entonces el usuario puede establecer su propio precio si piratean al cliente.

Pero si lo único que puede hacer el cliente es establecer el artículo y la cantidad de su compra, y el servidor siempre busca los precios en la base de datos de productos, entonces ha reducido la superficie de ataque de la API.

Vale la pena que un experto diseñe su arquitectura y supervise (o al menos audite) su proyecto, si le preocupa la seguridad. Es un lugar donde un desarrollador más junior tiene una seria desventaja, incluso cuando de otra manera son brillantes.

Pero sí, es posible.