
Vulpyは、Python / Flask / SQLiteで開発された、2つの顔を持つWebアプリケーションです。
GOOD: セキュアな開発のベストプラクティスを念頭に置いてコーディングしようとします。
BAD: (おそらく)あなたのようにコーディングしようとします。:p
以下のコースのラボとして開発されています。
Securetiaのセキュア開発 (https://www.securetia.com/cursos.html) EducaciónITのセキュア開発 (https://www.educacionit.com/curso-de-desarrollo-seguro)
ただし、お好みで使用できます(MITライセンス)
「GOOD」バージョン(未完成)は、OWASP ASVSに準拠する予定です:
https://www.owasp.org/index.php/Category:OWASP_Application_Security_Verification_Standard_Project
これにより、最高のセキュリティ慣行に従ったPythonコードの開発方法を学ぶことができます。
::
git clone https://github.com/fportantier/vulpy
cd vulpy
pip3 install --user -r requirements.txt
「BAD」バージョンに存在する脆弱性の一部:
注: 「GOOD」バージョン(未完成)は脆弱性がないはずですが、私は人間なので…
「BAD」と「GOOD」の両バージョンで、データベースの初期化が必要です。
これは各ディレクトリ(bad と good)内のスクリプト「db_init.py」で行われます。
各バージョンには、ユーザーと投稿用の独自のSQLiteファイルがあります。
スクリプトの実行例は次のとおりです:
::
cd bad ./db_init.py
データベースの初期化後、3人のユーザーが作成されます:
::
Username Password
admin SuperSecret elliot 123123123 tim 12345678
任意のユーザーでログインできます。アプリケーションには権限システムがないため、3人の権限はすべて同じです。