オルタナティブ・ブログ > 吉政忠志のベンチャービジネス千里眼 >

IT業界でベンチャービジネスの支援をしている執筆者が日々の活動ログと感じたことを、徒然なるままに書き綴っていきます。

上級PHPコラム『プレイスホルダ2種と既存の改修』(PHP上級試験対策)

»

PHP技術者認定機構の吉政でございます。

PHP技術者認定機構の認定スクールであるヒューマンリソシアが

私が企画した、古庄親方のPHPコラム『プレイスホルダ2種と既存の改修』を公開しています。

今回も親方のコラムのご紹介です。

###
今回は割合と「実務メイン」で失礼をさせていただければと思います。
早速ですが、前回ちらりと出しました「プレースホルダ」について少し細かい話をさせていただければ、と思います。

用語を少し厳密におさらいしておきましょう。
まず「正式なデータが入るまでの臨時のスペースを適切な表記で仮に表現した」SQLを準備しておきます。このように準備されたSQLを「準備された文(プリペアドステートメント)」と呼称します。
また「正式なデータが入るまでの臨時のスペースを適切な表記で仮に表現したもの」を、プレースホルダと呼称します。
ちなみに「プレースホルダ」という呼称自体は、SQLのこの話の他に、「HTML5(placeholder属性)」「PowerPoint」などにも出てくる用語です。確かに「とりあえずの、仮の目印」は便利ですからね。

上述のようなケースにおいて「準備された文」と「バインドされた値」は別々に通信されます。
この「別々に通信される」ことは、SQL-Injection対策としてとても有効になります。
「別々に通信されることが原理的にSQL-Injection対策になる」理由を細かく書くとかなり長くなってしまうのですが、端的には「”SQLのパース処理時”の”本来の意図と異なるパース結果”を誘発することによって悪意あるSQLを発行させるSQL-Injection」に対して「そもそも”準備された文”に”別途通信された値をバインドする”という手間をかけるので、”パース処理の誤謬を誘発させる”ことが原理的に出来ない」ために安全である、という事になります。

(この続きは以下のコラム本文をご覧ください)
http://resocia.jp/column/8/

Comment(0)