第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年のエントリーを振り返ると、何だかんだで毎月記事を書いていた。勉強会への参加記録とかカウントするのにはばかられるものも結構あるけど。。
技術記事はインフラ系が多かった。もう少しフロント関係とかデータコネコネ関係もアウトプットしたいところ。
PostgreSQLとMySQLのdocker-composeファイル
メモ書き。バージョンは適宜修正してください。docker for mac での利用を想定。ほかで動くかは不明。。。
PyCon JP 2018 に参加してきた
参加された皆さま、スタッフの皆さま、お疲れさまでした。簡単ですが参加報告です。
聴講したセッション
基調講演:Argentina in Python: community, dreams, travels and learning
動画:https://www.youtube.com/watch?v=KwmF5wyY2C4
Pythonに出会って良さに惚れ込み、南米中を車で巡って勉強会をしている人の話だった。ものすごい情熱。国を超えても同じスペイン語が通じる点は日本と状況が違うな。。
コミュニティリーダーの鏡だな。 #pyconjp
— Kouichi Nishizawa(19 (@koty) 2018年9月17日
PyCon JP における子ども向けワークショップの活動事例と実施の意義
動画: https://www.youtube.com/watch?v=OTydTBD3_04
python + マイクラ、web、game、micro:bit #pyconjp_8
— Kouichi Nishizawa(19 (@koty) 2018年9月17日
難しいと感じられてしまうことが必ずしも悪いことでもないけどもなぁ。 #pyconjp_8 #pyconjp
— Kouichi Nishizawa(19 (@koty) 2018年9月17日
scratchが第一外国語。pythonが第二外国語のイメージ #pyconjp #pyconjp_8
— Kouichi Nishizawa(19 (@koty) 2018年9月17日
"マイクラ、ラズパイ、micro:bit がワークショップの題材のデファクト" #pyconjp #pyconjp_8
— Kouichi Nishizawa(19 (@koty) 2018年9月17日
田舎でプログラミングに触れる機会のある子どもはどれくらいいるもんかなぁ。 #pyconjp #pyconjp_8
— Kouichi Nishizawa(19 (@koty) 2018年9月17日
Q「プログラミング以外で苦労する点は?」ANS「エディタ、キーボードの使い方に不慣れ、英語(whileとか)」 #pyconjp #pyconjp_8
— Kouichi Nishizawa(19 (@koty) 2018年9月17日
Q「GUI→キャラクタベースへのパラダイムが変わるのは悩まないか」ANS「世界共通の話題。みんな研究している。 #pyconjp #pyconjp_8
— Kouichi Nishizawa(19 (@koty) 2018年9月17日
Q「プログラミングが初等教育で一般化した場合、プログラミングの初学者教育はどう変わるべきか」A「プログラミング自体が目的ではなく、それで何を生み出せるかにフォーカスすべき」(超訳) #pyconjp #pyconjp_8
— Kouichi Nishizawa(19 (@koty) 2018年9月17日
面白かった。分析するには母数がたりない印象は確かにあった。。。 #pyconjp #pyconjp_8
— Kouichi Nishizawa(19 (@koty) 2018年9月17日
Building Maintainable Python Web App using Flask
リファクタ前に例示したコードがSQLを組み立てるのにstring.formatを使っていた。まあコード例だと思うんで。。。
It's better to use SQL parameter instead of string.format for building SQL... #pyconjp #pyconjp_1
— Kouichi Nishizawa(19 (@koty) 2018年9月17日
どこまでmockを使うかは悩みどころかと。
where we should replace code to mock object in unit testing is difficult issue. #pyconjp #pyconjp_1
— Kouichi Nishizawa(19 (@koty) 2018年9月17日
mockのご利用は計画的に。。
— Kouichi Nishizawa(19 (@koty) 2018年9月17日
DBアクセス部分はDjangoだったらsettings.pyで切り替えてインメモリのsqliteを使うのが良いと思う。このセッションはORM使う前提じゃないのでいろいろ面倒なことをする必用があった。
うえええ、Django使ったらといいたくなるな。。。
— Kouichi Nishizawa(19 (@koty) 2018年9月17日
facadeって言葉久々にきいた
— Kouichi Nishizawa(19 (@koty) 2018年9月17日
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
— Kouichi Nishizawa(19 (@koty) 2018年9月18日
昨日の基調講演とはまた違った方向のパッションだな #PyConJP
— Kouichi Nishizawa(19 (@koty) 2018年9月18日
HomeSecurity with Python
動画:https://www.youtube.com/watch?v=MCRDLld6kXU
当社社員の発表。こちらも盛況で何より。
家族の声「買えばいいのによく作るわ」泣くわ #PyConJP #PyConJP_8
— Kouichi Nishizawa(19 (@koty) 2018年9月18日
Djangoだってカンバンつくれるもん(Django Channels + Vue)
動画:https://www.youtube.com/watch?v=RTIPoW21K3U
LTのごとくマシンガントークの予感 #PyConJP #PyConJP_3
— Kouichi Nishizawa(19 (@koty) 2018年9月18日
wsgiがwebsocketをサポートしてないのよね #PyConJP #pyconjp_3
— Kouichi Nishizawa(19 (@koty) 2018年9月18日
channelsはdjangoに内包されるって話はどうなったんだろう。2016年の記事 "As for the Channels itself: plan is to include Channels in Django 1.10, which is scheduled for release this summer. " https://t.co/pCSAbZGfEd #PyConJP #PyConJP_3
— Kouichi Nishizawa(19 (@koty) 2018年9月18日
OSSに貢献。すばらしい #PyConJP #pyconjp_3
— Kouichi Nishizawa(19 (@koty) 2018年9月18日
websocketだと同期APIを使うと死ぬと #PyConJP #pyconjp_3
— Kouichi Nishizawa(19 (@koty) 2018年9月18日
Django ORMのgetterも同期APIなのでそのまま使うと死ぬ #pyconjp #pyconjp_3
— Kouichi Nishizawa(19 (@koty) 2018年9月18日
正直この要件だとfirebase database使ったらと言いたくなる。。。 #pyconjp #pyconjp_3
— Kouichi Nishizawa(19 (@koty) 2018年9月18日
daphneをどう読むんだ問題 #pyconjp #pyconjp_3
— Kouichi Nishizawa(19 (@koty) 2018年9月18日
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ネタは多かった。理由は不明。
- その分データ分析系は思ったよりも少なかった。この分野も落ち着いてきて一般化したってことなんだろうか。
- 機械学習・データ分析関係の話題はまったくついていけない。何か始めないとなぁ。。
あとで見る
自分へのメモ。この辺りか。。。
- 01-205_Django を Zappaで構築してServerless Python のベストプラクティスを探る(向山 裕介/Yusuke Mukoyama) - YouTube
- 04-203_Djangoアプリケーションにおけるトイル撲滅戦記(Yasuaki Matsuda) - YouTube
- 03-102_Django REST Framework におけるAPI実装プラクティス(芝田 将) - YouTube
- [04-104_Webアプリケーションの仕組み(Takayuki Shimizukawa) - YouTube
- 06-101_DjangoではじめるPyCharm実践入門(Kashun Yoshida) - YouTube
第2回「体系的に学ぶ-安全なWebアプリケーションの作り方-第2版」読書会参加記録
nseg.connpass.com (確か)7名の参加
CORSで、「シンプルなリクエスト」の要件を満たすものはプリフライトリクエストなくHTTPリクエストが発行される。満たさないものはプリフライトリクエストが飛び、ターンアラウンドが一回多くなる。
クライアント側を守るためにサーバー側に仕組みが必用な点がCORSの分かりにくい点(個人の感想)。
Djangoの場合は、django-cors-headers を使えばよしなにしてくれ、各種設定はsettingsでできる。Djangoで言うviewではCORSを意識しなくて良い。ほかの処理系のwebフレームワークであってもおそらくは、リクエストのパイプラインの途中に介入しコントローラに至る前にプリフライトリクエストは処理できるするしくみになっている、またaccess-control-allow-* ヘッダを制御しているハズ。。。
この辺のトピックはここ数年で入った話なので改訂版ならではですね。
次回は 9/19 です。
第1回「体系的に学ぶ-安全なWebアプリケーションの作り方-第2版」読書会参加記録
キャンセルが出たものの、当日の飛び込みもあり参加者は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円弱。このモデルに多い故障らしい。翌日から仕事で使う予定だったので、ひと安心。
しかし連絡待ちで貴重な休みを使ってしまった。