@kotyのブログ

PythonとかAWSとか勉強会のこととかを、田舎者SEがつづります。記事のライセンスは"CC BY"でお願いします。

第7回「体系的に学ぶ 安全なWebアプリケーションの作り方 第2版 読書会 参加記録

nseg.connpass.com 業務多忙につき、2ヶ月ほど間を空けてしまった。参加者は5名だった。

トピックとしては、「リダイレクト処理にまつわる脆弱性」と「クッキー出力にまつわる脆弱性」。 前者についてはヘッダーに不正な改行コードを入れられたときに発生する。

Django(1.8.3)で以下のコードを試してみたところ、BadHeaderErrorでHTTPステータスコードが500が返ってきたのでちゃんと対策されていそう。安心安心。

@require_GET
def index(request):
    response = render(request, 'index.html', {})
    response['MY_HEADER\nHAGE_HEADER'] = 'hogehoge'
    return response

次回はイベントがかぶったので一日ずらしました。12/13(木)です。本書は各項が比較的独立しているので、途中参加しやすいと思います。お気軽にご参加ください。 nseg.connpass.com

無題

今年もあと2ヶ月だ。ふとこの1年のエントリーを振り返ると、何だかんだで毎月記事を書いていた。勉強会への参加記録とかカウントするのにはばかられるものも結構あるけど。。

技術記事はインフラ系が多かった。もう少しフロント関係とかデータコネコネ関係もアウトプットしたいところ。

PyCon JP 2018 に参加してきた

参加された皆さま、スタッフの皆さま、お疲れさまでした。簡単ですが参加報告です。

聴講したセッション

基調講演:Argentina in Python: community, dreams, travels and learning

動画:https://www.youtube.com/watch?v=KwmF5wyY2C4

Pythonに出会って良さに惚れ込み、南米中を車で巡って勉強会をしている人の話だった。ものすごい情熱。国を超えても同じスペイン語が通じる点は日本と状況が違うな。。

PyCon JP における子ども向けワークショップの活動事例と実施の意義

動画: https://www.youtube.com/watch?v=OTydTBD3_04

Building Maintainable Python Web App using Flask

リファクタ前に例示したコードがSQLを組み立てるのにstring.formatを使っていた。まあコード例だと思うんで。。。

どこまでmockを使うかは悩みどころかと。

DBアクセス部分はDjangoだったらsettings.pyで切り替えてインメモリのsqliteを使うのが良いと思う。このセッションはORM使う前提じゃないのでいろいろ面倒なことをする必用があった。

Pythonで時系列のデータを分析してみよう。

動画:https://www.youtube.com/watch?v=k7kE0P0oYUk

当社社員の発表。盛況で何より。

Pythonで解く大学入試数学

動画:https://www.youtube.com/watch?v=x0mIzF_VXLg

sympyなんてものがあるとは知らんかった

二日目基調講演

動画:https://www.youtube.com/watch?v=kO4FNg648qE

HomeSecurity with Python

動画:https://www.youtube.com/watch?v=MCRDLld6kXU

当社社員の発表。こちらも盛況で何より。

Djangoだってカンバンつくれるもん(Django Channels + Vue)

動画:https://www.youtube.com/watch?v=RTIPoW21K3U

Make a Drone using RaspberryPi and Google VoiceKit by Python

動画:https://www.youtube.com/watch?v=5TYodp-e-9o

昨年も同じネタで発表した人。会社作ってた。

Pythonで始めるウェブスクレイピング実践入門

動画:https://www.youtube.com/watch?v=zgTP_4-XEpw

当社社員の発表。こちらも盛況で何より。

所感

  • 今年は当社からスピーカーとして3名登壇した。自分もプロポーザル出したけど採択にはいたらず。
  • 英語がんばろう。
  • 全体の質疑応答で質問しないで、終了後に個別に質問するのはよくない。QAを共有した方が良いのに。
  • 確かに例年よりDjangoネタは多かった。理由は不明。
  • その分データ分析系は思ったよりも少なかった。この分野も落ち着いてきて一般化したってことなんだろうか。
  • 機械学習・データ分析関係の話題はまったくついていけない。何か始めないとなぁ。。

あとで見る

自分へのメモ。この辺りか。。。

第2回「体系的に学ぶ-安全なWebアプリケーションの作り方-第2版」読書会参加記録

nseg.connpass.com (確か)7名の参加

CORSで、「シンプルなリクエスト」の要件を満たすものはプリフライトリクエストなくHTTPリクエストが発行される。満たさないものはプリフライトリクエストが飛び、ターンアラウンドが一回多くなる。

クライアント側を守るためにサーバー側に仕組みが必用な点がCORSの分かりにくい点(個人の感想)。

Djangoの場合は、django-cors-headers を使えばよしなにしてくれ、各種設定はsettingsでできる。Djangoで言うviewではCORSを意識しなくて良い。ほかの処理系のwebフレームワークであってもおそらくは、リクエストのパイプラインの途中に介入しコントローラに至る前にプリフライトリクエストは処理できるするしくみになっている、またaccess-control-allow-* ヘッダを制御しているハズ。。。

この辺のトピックはここ数年で入った話なので改訂版ならではですね。

次回は 9/19 です。

nseg.connpass.com

第1回「体系的に学ぶ-安全なWebアプリケーションの作り方-第2版」読書会参加記録

nseg.connpass.com

キャンセルが出たものの、当日の飛び込みもあり参加者は7名。静かな滑り出しという感じ。

序盤なのであまりコメントすることがない。。。

x-www-form-urlencodedとRFC3986のURLエンコードの違いについて少し話題になった。

x-www-form-urlencodedの仕様では半角スペースは +になるがURLエンコード(encodeURIComponent)を通すと %20 になるという違いがある。厳格に扱うには %20 をさらに+ に変換してやる必用がある。

今までそこまで気にしてなかったが。。。

参考:

次回は9/5です。

nseg.connpass.com 本の厚さからして読了に1年くらいかかりそう。

MBPを修理してもらった話

会社から貸与されているMac Book Pro(13 inch early 2015)のビルトインのキーボードとトラックパッドが反応しなくなった。USBキーボードとbluetoothトラックパッドを使えば問題ないが持ち運びが面倒すぎる。

最初にケーズデンキAppleストアに持っていったがハードウェア修理は請けていないとのこと。

調べたところ、松本に修理センターがあるらしい。なぜ長野に無い。。。追記長野にもあるが、macの修理はやってない模様。追記おわり。

BIC MIDORI松本店 - Appleの購入と修理 | ビックカメラ

そっち方面の同僚にお願いして持ち込んでもらった。

受け取りは盆休みを使って自分で行った。おおむねこの日と言われた日の夕方になっても連絡が無い。突然連絡を受けてから向かっても閉店に間に合わない可能性があるのでこちらから電話したところ、部品は交換済みであとは動作確認をしているとのこと。それを聞いて松本に向かった。

費用は8,000円弱。このモデルに多い故障らしい。翌日から仕事で使う予定だったので、ひと安心。

しかし連絡待ちで貴重な休みを使ってしまった。