El libro de visitas seguro es una aplicación web, escrita en PHP. La persistencia de datos se implementa con MySQL.
Esta demostración fue escrita para demostrar mi enfoque en la situación "No tienes nada excepto PHP y MySQL. Necesitas escribir una aplicación segura. Muestra lo que puedes".
Esto también podría ser un desafío: implementar esta aplicación, torturarla, piratearla, demostrar que hay fallas a nivel de aplicaciones. Estoy 95% seguro de que no. Muéstrame, me equivoco.
Esta aplicación no se trata de reinventar la rueda. Sí, hay muchos marcos y libs de OpenSource.
Esto se trata más del desafío de comprender la naturaleza interna de los marcos que usamos todos los días y cómo afecta la seguridad, la extensibilidad y la mantenimiento de las aplicaciones que creamos.
La tarea es escribir una aplicación de demostración en PHP puro sin librios de terceros.
La aplicación es un libro de visitas con las siguientes opciones: registro del usuario, inicio de sesión e inicio de sesión, mensajes creando, editar, eliminar, agregar respuesta.
La tarea es escribir una aplicación de demostración en PHP puro sin librios de terceros para demostrar que el diseño correcto es la mejor manera de crear aplicaciones seguras.
A pesar de la evidente tempentación de escribir una aplicación simple de una manera excesiva, hay una falla aún más obvia de ese enfoque: pierde el control sobre la aplicación y se ahoga en las limitaciones de esa simplicidad alusiva.
Entonces, sí, vale la pena escribir un marco MVC simple pero funcional que escribir 10 scripts PHP no extensibles, mezclados con HTML.
Un entorno similar a MVC se escribió desde cero para esta demostración. Interfaz en puro HTML ultra simple no establecido.
Todo el procesamiento se realiza alrededor de un ciclo de vida de un objeto de solicitud que se está mutando durante la siguiente secuencia:
Como el desafío fue principalmente sobre escribir una aplicación, por lo segura que sea posible, la siguiente lista de mesaures tomados para hacer cumplir la aplicación:
Para limitar el número de intentos de robo, el fallado simplificado local2ban es Buil-in.
Las características principales son:
Los umbrales de prohibición de errores y solicitudes son configurables.
Cantidad muy básica de pruebas proporcionadas para subsistemas de columna vertebral.
Prerrequisitos: PHP 7 (PDO_MYSQL, OpenSSL), Composer (solo para phpunit), servidor HTTP
WEBAPP_BASEDIR - should point to src/ folder
WEBAPP_STORAGE_MYSQL_HOST
WEBAPP_STORAGE_MYSQL_USER
WEBAPP_STORAGE_MYSQL_PASSWORD
WEBAPP_STORAGE_MYSQL_DB
src/public con el índice de documentos predeterminado.php phpunit --bootstrap tests/bootstrap.php tests/ApplicationTest.php
getErrorsTillBan y getRequestsTillBan si es necesario