やっつけ不定記

好きなときに好きなことをちゃっちゃと書いてます

イベントハシゴ

ちょっと前に申し込んでいたPHPカンファレンス関西2014に行ってきました。
勉強会やセミナーイベントといえば、セキュリティやモバイルもので
参加したことがありますが、PHPは初めてです。
今回は2つのセミナーを聴講しました。以下、聴いてみたメモですが、
そのうち、講演者の方々からスライドが公開されるのではないかと。




(1)安全なPHPアプリケーションの作り方2014
Webアプリセキュリティの第一人者、徳丸浩さんの講演。
著書(通称:徳丸本)は発売日に購入して、今でも重宝しています。


CSRF
危険性はSQLインジェクションXSSほどではない。
日本で一番売れているPHP本のサンプルを使ったデモw
対策は秘密キー一択と思ってよい。ただし、セッションごとの固定トークンでよい。
php入門書にはまずCSRFのことは書いてない。


XSS
XSSの例とデモ。
htmlspecialcharsの第三引数(文字エンコーディング)は明示的に指定するべし。


SQLインジェクション
とある本サンプルの脆弱性を使って実演。
SQLインジェクションの対策はプレースホルダ一択と思ってよい(エスケープは難しい)。


・プラットフォームの脆弱性
セキュリティ対策としてPHPを避けるというのがあったが、過去の話。
PHPのリリースサイクルは3年(タイミング次第では2年)。
バージョンアップとつきあうには、どういう方針でいくのか、ちゃんと計画をたてること。
RedHat系のようなOSバンドルのPHPを使うのが楽かも。


SNSPHPMyAdminの脆弱性


・パスワード保護
SHA-1は総当たり攻撃で解析できる(実演では誰でもできる簡単な方法で解析してた)
ソルトとストレッチングは非常に有効。ややこしいならpassword_hash関数使おう




(2)PHPコードではなく、PHPコードの「書き方」を知ろう
PHPVagrantで有名な新原さんの講演。FizzBuzz問題を使ったライブコーデイング。
PHPコードの書き方を知っていれば、5年?は食べていける
コマンドラインPHPは機能の検証に非常に使える。
FizzBuzz問題のコードについて、関数で処理を分離。
・いちいち手で試すのが面倒なので、PHPUnitで自動テスト
・関数をクラス化して整理
・クラスの分割は重要だが、必要以上にやりすぎないこと(逆に可読性を下げる)。




PHPカンファレンスを後にして、向かったのはこれ。
http://nishinomiya-gardens.com/event/1/2014/6/28
17時のイベントを見に行きました。
ちょっと前までSEEDのリマスタを見ていましたが、本放送からはもう10年経ちます。
Believeとフリーダム発進シーンは、最高の組み合わせ。


<戦利品>
PHPエンジニア養成読本
SE(2)
変女(1)