Secure Guestbook ist eine Webanwendung, die in PHP geschrieben wurde. Die Datenpersistenz wird mit MySQL implementiert.
Diese Demo wurde geschrieben, um meinen Ansatz in der Situation zu demonstrieren: "Sie haben nichts außer PHP und MySQL. Sie müssen eine sichere App schreiben. Zeigen Sie, was Sie können."
Dies könnte auch eine Herausforderung für Sie sein: Bereiten Sie diese App ein, Foltern Sie sie, hacken Sie sie, beweisen Sie, dass es Fehler auf App-Ebene gibt. Ich bin mir zu 95% sicher, dass es nicht gibt. Zeig mir, dass ich falsch liege.
In dieser App geht es nicht darum, das Rad neu zu erfinden. Ja, es gibt viele gute OpenSource -Frameworks und Libs.
Hierbei handelt es sich mehr um die Herausforderung, die innere Natur der Rahmenbedingungen zu verstehen, die wir jeden Tag verwenden, und wie sie die Sicherheit, Erweiterbarkeit und Wartbarkeit der von uns erstellten Apps beeinflusst.
Die Aufgabe besteht darin, eine Demo-App in reinem PHP ohne Libs von Drittanbietern zu schreiben.
Die App ist ein Gästebuch mit den folgenden OPTs: Benutzeranmeldung, Anmeldung und Abmelden, Nachrichten erstellen, bearbeiten, löschen, Antwort hinzufügen.
Die Aufgabe besteht darin, eine Demo-App in reinem PHP ohne Libs von Drittanbietern zu schreiben, um zu zeigen, dass das richtige Design der beste Weg ist, um sichere Anwendungen zu erstellen.
Trotz der offensichtlichen Verschiebung, eine einfache App auf über vereinfachte Weise zu schreiben, gibt es einen noch offensichtlicheren Fehler dieses Ansatzes: Sie verlieren die Kontrolle über die App und ertrinken in den Einschränkungen dieser explosionen Einfachheit.
Also ja, es lohnt sich, ein einfaches, aber funktionales MVC-Framework zu schreiben, als 10 nicht ausgewählte PHP-Skripte zu schreiben, gemischt mit HTML.
Für diese Demo wurde eine Kesselplatten-MVC-ähnliche Umgebung von Grund auf neu geschrieben. Schnittstelle in reiner nicht stylerischer Ultra-einfacher HTML.
Die gesamte Verarbeitung erfolgt um einen Lebenszyklus eines Anforderungsobjekts, das während der folgenden Sequenz mutiert wird:
Da es sich bei der Herausforderung hauptsächlich um das Schreiben einer App befasste, so sicher sie auch möglich ist, wurde die folgende Liste der Mesaiselungen zur Durchsetzung der App aufgenommen:
Um die Anzahl der Einbruchversuche zu begrenzen, ist der lokale vereinfachte Fail2ban buil-in.
Die Hauptmerkmale sind:
Verbotschwellen für Fehler und Anforderungen sind konfigurierbar.
Sehr grundlegende Menge an Tests für Backbone -Subsysteme.
Voraussetzungen: Php 7 (PDO_MYSQL, OpenSSL), Komponist (nur für Phpunit), HTTP -Server
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 mit Standard -Dokumentindex.php zu verweisen phpunit --bootstrap tests/bootstrap.php tests/ApplicationTest.php
getErrorsTillBan an und getRequestsTillBan bei Bedarf