其實直接用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");
沒有留言:
張貼留言