Computer
エンジニア必須の概念 – 契約による設計と信頼境界線
少し設計よりの話を書くとそれに関連する話を書きたくなったので出力の話は後日書きます。 契約による設計(契約プログラミング)(Design by Contract - DbC)は優れた設計・プログラミング手法です。契約による設計と信頼境界線について解説します。
JavaScript文字列のエスケープ
サーバー側のプログラムでJavaScriptの文字列にデータを出力するケースはよくあります。このような場合、エスケープ処理を行うことが必須です。JavaScript文字リテラルは次のように定義されています。(ECMAScript 5.1) (さらに…)
SQL識別子のエスケープ
SQLのリテラルはエスケープが必要であることは広く認知されていると思います。しかし、識別子のエスケープはあまり広く認知されていないように思います。 PostgreSQLの場合、識別子のエスケープAPI(libpqのPQescapeIdentifier)が提供されておりPHPでもpg_escape_identifier()として利用できます。PostgreSQ…
Rails4 Windows `require’: cannot load such file — sqlite3/sqlite3_native (LoadError)
多分、WindowsにRails4をインストールしようとして困っている方も多い(?)と思うので簡単にエントリを書きました。 Rails4をWindowsで使うにはWindows版のRuby 2.0とDevKitがあれば良いとあったのでこれらをインストールした後に gem install rails を実行するとしばらくするとインストールが完了したが、テストア…
Sessionアダプション脆弱性の修正
やっとPHPのセッションアダプション脆弱性を修正するパッチとプルリクエストを作りました。議論は済んでいるのでパッチを検証、調整してマージするだけです。 PHPに限らず、未初期化のセッションIDを正規のセッションIDとして受け入れてしまうセッション管理機構があります。(Javaとか) サイトで稼働している全てのアプリが正しいセッション管理(ログイン後にセッショ…
PHP 5.5.0 リリース
PHP 5.5.0がリリースされました。PHP 5.5のリリースにともないPHP 5.3の開発は終了し、今後一年間セキュリティフィックスのみが提供されます。 PHP 5.5.0 ChangeLog PHP 5.5へのマイグレーション PHP 5.3/5.4で動作するPHPアプリケーションのほとんどはそのまま動作しますが、非互換な変更を含むリリースです。Ch…
Webノウハウシェア2013のスライド
5月24日(金)に開催されたWeb担当者向けのセミナーの「Webノウハウシェア2013」にBOSS-CON JAPANのPHP Security AlianceのCTOとして講演してきました。その講演のスライドです。 http://www.slideshare.net/yohgaki/boss-conphp Javascriptを利用した内部ネットワークのス…
第四回 岡山PHP勉強会
岡山PHP勉強会で使ったスライドです。
MacBookのOSX、BootcampのWindowsアップグレード
最近の使い方だとMacBookはプレゼン、メモ、メール、それから時々コンパイルの確認とデバッグくらいに使っていす。 Macbook: Mountain Lionは入れられない型番 OS: Snow Loepard (OSX 10.6) + Windows Vista Ultimate(32bit) bootcamp 仮想化: Parallels 4.0 UN…
オープンセミナー広島2013の資料
1/19日に開催されたオープンセミナー広島2013にスピーカーとして参加しました。その資料を公開します。