次の案件でDjangoを扱うため、予習を兼ねてメモを残す。
・Djangoはフルスタックフレームワークで、拡張機能はあるが基本的にWebアプリケーションの実装はDjangoですべて完結する
・ORMが優れており、SQLを1行も書かずにDBアクセスできる場合あり
・MTVモデルを採用している(Model/Template/View)
※Ruby on Rails等で使われるMVCモデルは、(User) → Controller → Model → View → (HTML返す)だが、MVTは(User) → View → Model → Template → (HTML返す)であり、Viewの役割が異なるので注意
モデル(Model):Viewからのデータ要求に応じて、DBと連携を行い、Viewにデータを返す。
ビュー(View):ユーザからのリクエストを処理した後、Modelにデータを要求し、Modelから受け取ったデータをTemplateに渡す。
テンプレート(Template):Viewからデータを受け取り、主にWebブラウザ等にデータを表示する。
・Djangoのテンプレートエンジンはjinja2が代表的
・Djangoは以下セキュリティ対策が充実している
●SQLインジェクション・・・断片的なSQLをアプリケーションに不正に注入して実行させる攻撃
●クロスサイトリクエストフォージェリ(CSRF)・・・悪意のあるスクリプトにアクセスさせ、webアプリサーバー上で実行させる攻撃
●クロスサイトスクリプティング(XSS)・・・悪意のあるスクリプトにアクセスさせ、ユーザーのブラウザで実行させる攻撃
●クリックジャッキング・・・ユーザーがクリックしたくなるようなボタンの上に、悪意のある透明なボタンを重ねてクリックさせる攻撃