akkietech’s diary

セキュリティ関連メインの自分用メモ書き。twitter: @akkietech

1/23 長いflaskの旅(約6時間)

今日はflask

 

やりたかったこと

・flaskをapacheで本番環境に

・簡単なページの作成(できれば動的ページまで) 

 

やったこと

 

■前半

環境設定で試行錯誤

 

・centos6の方でpythonページ動かせるようにした

・次にflaskを動かせるようにしようとした

・でもうまくいかなかった

 これは後々分かるんやけど、結局設定の変更を怠ったから

 

centos6では諦めて、どうせやるならと思ってサラピンのcentos7で

 思いっきり設定いじってやったろうと思った

 

・まず本番環境で動かすまでで参考にした日本語ページの

 設定まるまるコピペでなんとか動いてくれた

 

■中盤

本番環境開始できるも、Webページをいじるための

仕組みの理解やページの構成方法について苦戦

 

・リンクやったり他のパスでURL飛ばすのがわからず

 もう少しググって、見つけた英語ページのを更に丸々コピペ

 

・virtualホストありきでなんとかflask起動させれたが、

 未だにリンクやったりパスの違いの付け方がわからず

 

■後半

徐々にそれぞれのファイルやフォルダが持つ役割を把握してきて

flaskの理解とページ作成が加速した

 

・なんとかurl_forを駆使してリンクもつけれた

 <a href="{{ url_for('index') }}">Top</a>

 みたいな感じ

 url_forの引数に渡すのはpyファイルで作成したメソッド名

 

・入力フォームで名前を表示させる動的ページの作成もできた

 ここで時間かかった理由

  ・importにrequestを入れ忘れていた

  ・vimのタブをスペースと同じ感覚で使ってしまったので、

   それでスクリプトが処理されていなかった。

   でもそれによく気づけたと思う。

 

・最後にhtmlページのテンプレートの活用方法も作りながら気づき学んだ

 {% block content %}{% endblock %} は大変便利である

 あと各ページの頭に{% extends 'base.html' %}も入れ忘れないように

 ただあまりに便利すぎて、たまに仕組みに謎を感じてしまう

 

 

丸一晩かかったけどなんとかここまでたどり着けた

ここまでたどり着けると、徐々に楽しくなってくる

 

ちなみに最後に入力フォームにXSSやってみたけど

警告窓がでなかった

 

フレームワーク側で勝手にエスケーピングされてる仕様なのか

 

次にやりたいこと

・データベースとやりとりして、ログイン情報とか日記的なものとか

cookieの設定、あわよくばセッションの盗聴

 cookie情報はどこに保存されている?tmp?

 盗聴して「こんにちは名前」の部分のハックができるのか

 

・ちょっとCSSを変えてみたい(bootstrapとは?

Blueprintを使ってみる