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回ずつ流したのみ。合格だけを狙うなら、特に勉強しなくてもよかったはず。

プロフィール

ENECHANGE株式会社VPoT兼CTO室マネージャー。AWS Community Builder (Cloud Operations)。前職はAWS Japan技術サポート。社内外を問わず開発者体験の向上に取り組んでいます

カテゴリ別アーカイブ
月別アーカイブ
ブログ内検索