エンジニア必須の概念 – 契約による設計と信頼境界線
少し設計よりの話を書くとそれに関連する話を書きたくなったので出力の話は後日書きます。 契約による設計(契約プログラミング)(Design by Contract - DbC)は優れた設計・プログラミング手法です。契約による設計と信頼境界線について解説します。
JavaScript文字列のエスケープ
サーバー側のプログラムでJavaScriptの文字列にデータを出力するケースはよくあります。このような場合、エスケープ処理を行うことが必須です。JavaScript文字リテラルは次のように定義されています。(ECMAScript 5.1) (さらに…)
XPathクエリ(2)
XPathクエリ(1)の続きです。 現在のPHPのXPathクエリの問題はXPath 1.0である事です。通常の仕様書であれば特殊文字のある文字列の場合はエスケープ方法やエスケープAPIが定義されています。エスケープ方法が定義されていなければ「特殊文字を入力することができない」からです。エスケープ方法が無い場合は「エスケープが必要ないAPI」を用意すべきです…
秘密保護法案が政府の秘密を永遠に秘密にする?!
秘密保護法案(特定秘密保護法案、秘密保全法案)が話題になっていますが、どうも議論の論点がズレている。数面にわたる新聞の記事を読んで、随分おかしな議論だと感じたのでエントリを作りました。 (さらに…)
Facebookのコメントプラグインを追加しました
大量に送信されてくるコメントスパムに対処できなかった為、コメント機能を無効にしていましたがFacebookのコメントプラグインを利用してコメントできるようにしました。このプラグインの導入はとても簡単でした。 https://developers.facebook.com/ にアクセスしてFacebookデベロッパーになり、画面上部の「Apps」メニューからコ…
徹底攻略 PHP5技術者認定上級試験 問題集
徹底攻略 PHP5 技術者認定 [上級] 試験問題集 [PJ0-200]対応 が手元に届きました。 私はPHP技術者認定機構として試験範囲に対応しているか、例として解説されている問題が適切であるか、などを監修者の1人としてお手伝いさせて頂きました。 試験対策本ですが、PHP開発者が自分の知識のチェック、より深くPHPを知るための本としても適していると思…
第一回 中国地方DB勉強会の資料
第一回 中国地方DB勉強会の講師として参加させて頂きました。 MySQLも使っていますが奥野さんの発表は普段気にしていなかったことも多く、とても参考になりました。 私の資料もSlideShareにアップロードしました。 データベースセキュリティ http://www.slideshare.net/yohgaki/ss-25042247 Postg…
入力バリデーションはセキュリティ対策の基本
徳丸さんとはホワイトリスト VS ブラックリストの議論から楽しく話をしています。私はホワイトリスト型で対処する方がよりセキュアであると考え、徳丸さんはブラックリストも変わらない。としています。考え方が反対なので楽しいのです。残念ながらあまりブログなどに時間を取りなくないのですが、わざわざ徳丸さんがブログを書いた、とツイッターで教えていただいたので簡単に返信し…
岡山Ruby会議02のプレゼンテーション資料「Rials4 Security」
岡山Ruby会議02が先週末の土曜日にありました。私は「Rails 4 セキュリティ」をテーマに講演させていただきました。 プレゼン資料だけでは分かりづらいと思いますが、参考までに公開します。 Rails4Security.pdf 追記:肝心なところで記述漏れがあり、誤解もあったので解説を追加しています。こちらも合わせてご覧ください。 http://blog…