其實直接用htmlentities or htmlspecialchars就可以了
不過因為一些問題,所以得加上一些參數
見這篇 到底要用htmlenties 還是htmlspecialchars
如果各自使用htmlentities 又容易漏參數
於是想寫個helper類的來幫助
後來想想,幹脆直接擴充phalcon的filter,再透過di統一取得
如此一來就能規範大家用相同的設定也挺不錯的
service.php的設定
$di->setShared("filter", function( $filter = new \Phalcon\Filter(); // Using an anonymous function $filter->add('xss', function ($value) { $flags = ENT_QUOTES; $encoding = "UTF-8"; $doubleEncode = false; return htmlspecialchars($value, $flags, $encoding, $doubleEncode); }); return $filter ));
使用方法
$filter = $di->get("filter"); //取得filter //統一透過filter,寫法能夠一致 $filter->sanitize($value, "xss"); //自寫的,用specialchars $filter->sanitize($value, "string"); //用htmlentities,不建議用 $filter->sanitize($value, "int"); $filter->sanitize($value, "email");
沒有留言:
張貼留言