Cómo asegurar mi aplicación web PHP sin usar ningún marco

Oh. Bueno, dependiendo de qué tan avanzado estés en el desarrollo, eso es bastante difícil de responder.

¿Tu aplicación está en producción? De lo contrario, aproveche la oportunidad para refactorizar su código antes de que sea demasiado tarde. El uso de un marco ofrece enormes ventajas y, literalmente, existen miles de soluciones y funciones inteligentes que, de lo contrario, tendrá que desarrollar por su cuenta. La reinvención total de la rueda solo te hará poner una gran cantidad de trabajo que se habría ahorrado si hubieras usado un marco maduro.

Dicho esto, diría que las cosas más importantes para verificar inicialmente:

  • Desinfecte sus entradas. Nunca confíes en tus usuarios. Todos deben considerarse piratas informáticos malintencionados en lo que respecta a su aplicación.
  • Use consultas parametrizadas adecuadas. Supongo que no estás usando ningún ORM, así que ten mucho cuidado al usar enlaces y parámetros con tus operaciones de base de datos. Una vez más, nunca confíes en los comentarios de los usuarios, todos están dispuestos a atraparte.
  • Asegúrese de usar siempre SSL. Realmente no hay razón para no utilizar el cifrado en estos días.
  • Elija solo HTTP en sus sesiones y asegúrese de regenerar la ID de sesión tanto como sea posible.
  • Bloquee la estructura de su archivo. Servir solo activos estáticos como estáticos, todo lo demás debe servirse a través de un controlador. Esto le permite poner un bloqueo de acceso a todo lo que se supone que está protegido.
  • Use git (u otro control de versión). Esto hace que sea mucho más fácil rastrear errores / errores y, si descubre un problema potencial, es fácil aplicar un hotfix y, más adelante, tener una visión completa de lo que hizo, en lugar de soluciones rápidas y sucias cuando está no puede dormir y solo quiere salir del trabajo a las 2 de la mañana después de bloquear a un pequeño ejército de niños de guiones rusos después de 6 horas de lucha (historia real). Esas soluciones lo perseguirán aún más si no comenta correctamente lo que se ha hecho. También sirve como una utilidad de copia de seguridad perfecta para su código.
  • Controla a tus usuarios de DB. Use diferentes usuarios para diferentes partes de su aplicación. Donde solo se permiten lecturas, no hay razón para usar una conexión que tenga permiso para escribir. Esto puede ser excesivo en una aplicación pequeña, pero desde un punto de vista de seguridad hace que sea más difícil para los atacantes potenciales utilizar inyecciones SQL.

Esos son algunos consejos y trucos ganados con esfuerzo. Una vez fui demasiado terco para aceptar las ventajas más que obvias que brindan los marcos y muchos de los puntos enumerados provienen de la experiencia de no haberlos evitado en primer lugar.

Esencialmente, nunca puede lograr la misma estabilidad y seguridad por sí mismo como lo proporcionan los marcos, después de todo, miles de contribuyentes y mentes agudas detrás de ellos.

TLDR; use marcos si no es demasiado tarde 😉

More Interesting

¿Por qué el navegador agrega o reemplaza el juego de caracteres de tipo Contenido con UTF-8 al realizar una solicitud XMLHttpRequest?

¿Existe una aplicación que pueda escanear la camisa de esa manera y sabremos que están usando la camiseta que les dimos?

¿Cuál es la mejor combinación de JavaScript Framework?

Para un producto estable existente que tiene nuevas características agregadas de forma incremental, ¿hay alguna diferencia entre AGILE y la cascada "rápida" (donde las características se reducen para que puedan desarrollarse rápidamente)?

Quiero construir una aplicación web basada en jQuery, pero no sé nada sobre JavaScript o jQuery. ¿Donde debería empezar?

¿Qué debo aprender primero para convertirme en un desarrollador web back-end?

Dé ejemplos de aplicaciones web que se pueden hacer utilizando Java Servlets

¿Cuál es el mejor video tutorial en línea para aprender Python para el desarrollo web?

Cómo entender mejor las rutas de Rails

¿Cuáles son algunas de las mejores API / servicios de impresión que pueden integrarse con una aplicación web?

Durante la prueba Beta de su aplicación web, ¿cuándo sabe que está listo para iniciar?

¿Por qué pocas empresas nuevas de Internet usan frameworks Java como J2EE y OSGI como la pila de software para implementar su aplicación web? ¿Por qué parecen preferir los frameworks Ruby-on-Rails, Python o PHP?

¿Hay un sitio web gratuito donde puedo hacer mis páginas y también una aplicación web completa?

¿Qué idiomas debo usar para crear un juego web simple que requiera autenticación de usuario? ¿Es MEAN una buena opción?

¿Qué enfoques son útiles para extraer el contenido de texto real de una página web de la etiqueta ?