BottleのCSRF対策がIE、Safariだと動かない
BottleではCSRF対策にbottle_utils.csrf
が用意されています
組み込みはとっても簡単で
@app.post('/') @csrf_token def index(): return dict(token=request.csrf_token) @app.post('/hoge') @csrf_protect def hoge(): redirect('/success')
@csrf_token
でトークンを発行しCookieに保存してくれ、@csrf_protect
では発行したトークンの整合性チェックをしてくれます
ChromeとFirefoxは問題なく動くのですが、IEとSafariはsubmitすると発行したトークンがCookieから消えてしまいます
bottle-utils/csrf.py at master · Outernet-Project/bottle-utils · GitHubのCookie登録ロジックが
response.set_cookie(token_name, token, path=path, secret=secret, max_age=expires)
になっているのを
response.set_cookie(token_name, token, secret=secret)
path
とmax_age
の指定をなくすことでCookieから消えずにCSRF対策ができました
もともとのソースにおかしいところはないと思うんだけどなんでだろう・・・
PHPカンファレンス 2017 (#phpcon2017)に参加してきました
今年も参加してきました(3年連続の参加です)
phpcon.php.gr.jp
簡単ですが、参加したセッションの感想やメモを残しておきたいと思います
間違いがありましたらご指摘いただけると幸いです<(_ _)>
LINE DEVELOPER DAY 2017(#linedevday)に参加してきました
応募者が多かったら抽選になると連絡が来ていたイベントですが、当選することができたので参加しました
linedevday.linecorp.com
簡単にですが参加したセッションの感想やメモを残しておこうと思います
間違いがありましたらご指摘いただけると幸いです<(_ _)>
AppServiceにPython(Bottle)アプリを手動デプロイする
Azure App ServiceにはGitからデプロイすると必要なモジュールも入ってくれてるのですが、諸事情でGit経由でのデプロイが行えないので手動デプロイを行いました
若干ハマったので忘れないようにメモを残しておきたいと思います
手動デプロイに関しては公式情報も少なく試行錯誤した結果の手順ですのでもっと簡単な方法があるかもしれませんのであしからず。。。