本論文は、PHP技術者認定機構 (http://www.phpexam.jp/) の実施する公開論文審査「PHP5 技術者認定ウィザード2015」に提出し、ウィザード認定された論文である。2016年1月31日に提出され、公開で審査された。その結果、可30票、不可3票、棄権8票で合格となった。
■ 概要
ソフトウェア開発中に、適切でないコードを書いてしまうことがある。この場合、警告メッセージが表示されることにより、アプリケーション開発者にフィードバックが与えられる。表示される警告メッセージが、具体的で修正点を明示した内容であれば、アプリケーション開発者が理解を深め、適切な修正をする手助けになる。
本論文では、 PHP製ソフトウェアの中でも利用者の多いWordPressを題材に取り上げる。WordPressには、安全にSQLを組み立てることができるwpdb::prepareメソッドが用意されている。wpdb::prepareメソッドが適切に使用されないとSQLインジェクションの危険があるため、wpdb::prepareメソッドが適切に使われることは重要である。旧来のWordPressでは、警告メッセージは構文の不備を示すものであった。これを、具体的で修正点を明示した警告メッセージを表示するように、筆者が改善を提案し、取り入れられた。
インターネット上の掲示板での回答を調査した結果、改善前の警告メッセージには不適切な修正を促す回答が見られたが、改善後の警告メッセージには不適切な修正を促す回答が見られなかった。
警告メッセージを出力する処理の速度を測定したが、他のセキュリティ対策用関数の処理速度と比較して遅くはなかった。
■ 目次
1. SQLインジェクション、プレースホルダ、wpdb::prepare
2. 著者による警告メッセージの改善
3. インターネット上の掲示板での回答の調査
4. パフォーマンスとのトレードオフ
5. まとめ
■ 補足
旧来の警告メッセージ
Warning: Missing argument 2 for wpdb::prepare(), called in 〜(ファイル名)
筆者が提案し、WordPressコアに取り入れられた警告メッセージ
The query argument of wpdb::prepare() must have a placeholder.
This site is safe
You are at a security, SSL-enabled, site. All our eBooks sources are constantly verified.