PHP 㧠h() ãæ¸ããªãä¸ç·ã« echo ãããã
ååãé·ãé¢æ° htmlspecialchars() ã h() ã¨æ¸ããããã«ããã¨ä¾¿å©ãã¨ãã話ãããã
- PHP: htmlspecialchars - Manual
- htmlspecialchars関数を簡単に扱えるようにする
- 第1回 CakePHPを使いたくなる5つの特徴:CakePHPで高速Webアプリ開発|gihyo.jp … 技術評論社
htmlspecialchars() ãªãã¦é·ãååã¯çµ¶å¯¾å¿ããããENT_QUOTESã ã®UTF-8ã ã®ãæ¸ãå¿ããã«æ±ºã¾ã£ã¦ããã
h() 㯠CakePHP ã§ã使ããã¦ãã¦ãããã¨æããããã¨æããã ãã©ãããã¡ãã£ã¨ãããã
<?php /** æ¹ååã®ã¨ã¹ã±ã¼ãé¢æ° */ function h($str) { return htmlspecialchars($str, ENT_QUOTES, 'UTF-8') }
ãã®ããã«ã¨ã¹ã±ã¼ãããçµæãreturnã§è¿ãã¨ãã¨ã¹ã±ã¼ãã¨åºåãé¢ãã¦æ¸ãã¦ãã¾ãã
$name = h($name); : // é·ãé·ãå¦çã®å¾ã« : <?php echo $name; // ãããã¨ã¹ã±ã¼ãæ¸ã ã£ãã㪠?> <?php echo h($address); // ãã£ã¡ã¯ã¨ã¹ã±ã¼ããã¦ãªãã£ããã ?>
ããã ã¨ãã£ããã¨ã¹ã±ã¼ããå¿ããããããã¯äºéã«ã¨ã¹ã±ã¼ãããã
ã¨ã¹ã±ã¼ãã常ã«åºåã®ç´åã«ãªãããã« h() ã®ä¸ã§ echo ãå®è¡ããã¨ãããã¨ã¹ã±ã¼ããã¦ããªã(echoãç´ã«æ¸ããã)ç®æãç®ç«ãããçµæã«ããªãã
<?php /** * HTMLã®ç¹æ®æåãã¨ã¹ã±ã¼ããã¦çµæãåºåãã¾ãã */ function h($str) { echo htmlspecialchars($str, ENT_QUOTES, 'UTF-8'); }
次ã®ããã«ä½¿ãã
<?php h($name); ?> <?php h($address); ?>
htmlspecialchars() ãå®è¡ããæååã«å¯¾ãã¦æ´ã«ä½ãå å·¥ããã®ã¯ä¾å¤çãªã±ã¼ã¹ã ããããããã®ã¯æ¹è¡ã<br/>ã«ããå¦çã§ããã㯠hbr() ã¨ãã¦å®ç¾©ããã
<?php /** * HTMLã®ç¹æ®æåãã¨ã¹ã±ã¼ããã¦æ¹è¡ã®åã«brã¿ã°ã追å ããçµæãåºåãã¾ãã */ function hbr($str) { echo nl2br(htmlspecialchars($str, ENT_QUOTES, 'UTF-8')); }
ãã以å¤ã¯é å¼µã£ã¦ htmlspecialchars() ã¨æ¸ããã¨è¨ããããã©ãENT_QUOTESã'UTF-8'ãå¿ããããªã®ã§ããã¯ãé¢æ°ãå®ç¾©ãã¦ãããã»ããå®å¿ãããh() ã使ããããªãããã«ãååã¯é·ãã«ããã
<?php /** * HTMLã®ç¹æ®æåãã¨ã¹ã±ã¼ããã¦çµæãè¿ãã¾ããé常㯠h() ã使ãã¾ãã */ function htmlescape($str) { return htmlspecialchars($str, ENT_QUOTES, 'UTF-8'); }
é åãã¾ã¨ãã¦ã¨ã¹ã±ã¼ãã¨ãã£ã話ã¯ãã£ã±ãå¿ããããããªã htmlescapeArray(array $array) ãå®ç¾©ãã¦ãå¦çå 容ãæ確ã«ããã
åè
ãåºåã®ç´åã«ããä¾å¤ãªãããã¨ã¹ã±ã¼ããã¦ãããã¨ããããããã«ã
ã»ãã¥ãªãã£äºã 以åã«ãããã°ã©ã ã®éçºæ¹æ³è«ã¨ãã¦ãã§ããã ãå±æçãªè¦ç¹ã§ã³ã¼ãã®æ£å½æ§ã確èªã§ããããã«æ¸ãã®ããè¿ä»£ããã°ã©ãã³ã°ã®åºæ¬ã ãã¤ã¾ãããã®ã³ã¼ãæçã ãè¦ã¦ãåé¡ããªãã¨ãããããã«æ¸ãã¹ãã§ããã
高木浩光@自宅の日記 - プログラミング解説書籍の脆弱性をどうするか, 「サニタイズ言うなキャンペーン」とは何か, ASPとかJSPとかPHPとかERBとか、逆だ..
:
ãã¨ãã°ãecho ãå ¨é¢çã«ä½¿ç¨ç¦æ¢ã¨ãã¦æ¬¡ã®ããã«æ¸ãã®ãããã ããã
PHP ã§ä½ããåºåããéã«ã¯ï¼ããã人ã®ç®ã«è§¦ããå½¢ã§è¡¨ç¤ºããããã©ããã«ãããããï¼åºåã®ç´åã« htmlspecialchars() ãå¿ ãéãããã«ãã¾ãããã
セキュリティ上の配慮
以ä¸ã®æååããµãã¿ã¤ãºããããµãã¿ã¤ãºããã¿ã¤ãã³ã°ã¯ããã¼ã¿åä»æã§ã¯ãªããHTMLåºåç´åã«ä¾å¤ãªãè¡ããã¨ã
セキュリティ指針/クロスサイトスクリプティング - ゼンド・ジャパン株式会社 技術情報コンテンツ
ã¯ã¾ã¡ã¡ããå çã®è¨äºã«è§¦çºããã¦æ¸ãã¾ããã