2013年2月24日日曜日

Smartyでサニタイジング

PHPのサイトでテンプレートエンジンとしてSmartyを利用している場合、クロスサイトスクリプティング対策としてのサニタイジングのために、HTMLコードのエスケープ処理を行います。エスケープ処理の方法としては、以下のサイトがよくまとまっていると思います。

http://k-holy.hatenablog.com/entry/php-advent-2012

私も試しに

$smarty->escape_html = true;

の設定をしてみたのですが、なぜかエスケープされる場合とされない場合があります。おかしいな~と思っていろいろ試していると、

{$this->name}<br/>

の箇所で

{$this->name} <br/>

のように、{$・・・}の後にスペースを1つ入れるとちゃんとエスケープするようになりました。いったいどんな仕様なのやら。。。


0 コメント:

コメントを投稿