|
发表于 2009-11-24 10:49:09
|
显示全部楼层
如果采用
$str = urlencode($str);
if ( ! preg_match("|^[".preg_quote($this->config->item('permitted_uri_chars'))."]+$|i", $str))
{
exit('The URI you submitted has disallowed characters.');
}
$str = urldecode($str);
这种方式来过滤,实际上再过滤 url 已经没有任何意义了.因为所有字符经urlencode之后,都会变成%+两位十六进制数这种类型.
只会有 [a-zA-Z\+\%] 这种形式. 此时 preg_match 永远都为OK,启用正则过滤形同虚设. |
|