Secure Guest Book adalah aplikasi web, ditulis dalam PHP. Kegigihan data diimplementasikan dengan MySQL.
Demo ini ditulis untuk menunjukkan pendekatan saya dalam situasi "Anda tidak punya apa -apa kecuali PHP dan MySQL. Anda perlu menulis aplikasi yang aman. Tunjukkan apa yang Anda bisa."
Ini juga bisa menjadi tantangan bagi Anda: Menyebarkan aplikasi ini, menyiksa itu, meretasnya, membuktikan ada kekurangan tingkat aplikasi. Saya 95% yakin tidak ada. Tunjukkan aku salah.
Aplikasi ini bukan tentang menciptakan kembali roda. Ya, ada banyak kerangka kerja OpenSource yang baik dan LIBS.
Ini lebih tentang tantangan memahami sifat batin kerangka kerja yang kita gunakan setiap hari, dan bagaimana hal itu memengaruhi keamanan, kemampuan memperpanjang, dan pemeliharaan aplikasi yang kita buat.
Tugasnya adalah menulis aplikasi demo di PHP murni tanpa libs pihak ketiga.
Aplikasi ini adalah buku tamu dengan opts berikut: pendaftaran pengguna, login dan logout, pesan buat, edit, hapus, tambahkan balasan.
Tugasnya adalah menulis aplikasi demo dalam PHP murni tanpa libs pihak ketiga untuk menunjukkan bahwa desain yang tepat adalah cara terbaik untuk membuat aplikasi yang aman.
Terlepas dari tempasi yang jelas untuk menulis aplikasi sederhana dengan cara yang terlalu disederhanakan, ada kelemahan yang bahkan lebih jelas dari pendekatan itu: Anda kehilangan kendali atas aplikasi dan tenggelam dalam keterbatasan kesederhanaan yang menarik itu.
Jadi ya, ada baiknya untuk menulis kerangka kerja MVC yang sederhana namun fungsional, daripada menulis 10 skrip PHP yang tidak dapat diperpanjang, dicampur dengan HTML.
Lingkungan seperti MVC boilerplate ditulis dari awal untuk demo ini. Antarmuka dalam html ultra-sederhana murni.
Semua pemrosesan dilakukan di sekitar siklus hidup objek permintaan yang sedang bermutasi selama urutan berikut:
Karena tantangannya terutama tentang menulis aplikasi, seaman mungkin, daftar mesaures berikut yang diambil untuk menegakkan aplikasi:
Untuk membatasi jumlah upaya pembobolan, Fail2ban yang disederhanakan lokal.
Fitur utamanya adalah:
Ambang Ban untuk Kesalahan dan Permintaan Jumlah dapat dikonfigurasi.
Jumlah pengujian yang sangat mendasar yang disediakan untuk subsistem tulang punggung.
Prasyarat: PHP 7 (PDO_MYSQL, OpenSSL), komposer (hanya untuk phpunit), server 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 dengan Dokumen Default Index.php phpunit --bootstrap tests/bootstrap.php tests/ApplicationTest.php
getErrorsTillBan dan getRequestsTillBan jika perlu