PHP技術者認定

ITトレメ「PHP技術者認定・上級」の42問目について

ITトレメ「PHP技術者認定・上級」の42問目は「JavaScriptインジェクションが可能となるスクリプトとして、正しいものを1つ次の記述の中から選択せよ」という問題だ。

正しい答は:

<?php
$v = strip_tags($_GET['param'], '<a>');
var_dump($v);
?>

とされている。しかし:

<?php
$v = filter_var($_GET['param'], FILTER_VALIDATE_EMAIL);
var_dump($v);
?>

も「JavaScriptインジェクションが可能」ではないだろうか。

たとえば Does PHP's FILTER_VALIDATE_EMAIL provide adequate security? - Stack Overflow に示されている「"<script>alert('xss')</script>"@example.com」が $_GET['param'] に渡ったらどうなるだろう。

というようなメールを関係先に送ってみた。


そもそも var_dump 時に、エスケープ漏れを気にする必要はないと思う。


追記(2014-09-03)

PHP技術者認定機構の理事長・吉松氏が5月に書かれた記事によると、「ITトレメの上級試験問題の廃止を決めました」とのこと。残念だが、そのうち非公開となるのだろう。

徹底攻略PHP5技術者認定[上級]試験問題集[PJ0-200]対応』を購入したので、そこでも誤りと思われる問題が見つかったら、また報告します。

PHP5技術者認定初級試験に合格した

本日、PHP5技術者認定初級試験を受け、無事合格した。満点を狙っていたのだが、結果は97点。残念。

仕事で10年PHPを書いているので、受かって当然というか、上級を受けろよという話ではあるが、まあいいじゃないの。若手に試験の難易度を伝えられるわけだし。

勉強は、ITトレメ問題集を1回ずつ流したのみ。合格だけを狙うなら、特に勉強しなくてもよかったはず。

プロフィール
知識欲と謎解き欲が旺盛なWebエンジニア。AWS認定ソリューションアーキテクト&デベロッパー(いずれもアソシエイト)。JAPAN MENSA会員
カテゴリ別アーカイブ
記事検索