5
我正在使用CodeIgniter PHP框架。我用JS動態加載一個PHP頁面:允許CodeIgniter中的URL中的任何字符
$('someIFrame').writeAttribute(
'src',
'/index.php/controller/method/' +
escape(userGeneratedString)
);
當我跑了這一點,笨給了我這個錯誤:
http://192.168.0.81/index.php/controller/method/dude%27s%20face
An Error Was Encountered
The URI you submitted has disallowed characters.
這是完全不符合事實,因爲有問題的URL不包含任何禁用的字符。我的配置文件允許存在於URL中的所有字符:
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_()@\-';
所以我很沮喪,只是允許所有字符,防止錯誤。
// Leave blank to allow all characters -- but only if you are insane.
// DO NOT CHANGE THIS UNLESS YOU FULLY UNDERSTAND THE REPERCUSSIONS!!
//$config['permitted_uri_chars'] = 'a-z 0-9~%.:_()@\-';
$config['permitted_uri_chars'] = '';
該行上方的警告信息聽起來很可怕。允許所有字符可能出錯?我會被黑客攻擊嗎?
@thisMayham自**這意味着**,你不關心給予反饋。不一樣,是嗎? ;)@JoJo您可以通過點擊答案旁邊的綠色支票大綱來接受答案 - 這意味着特定的答案有助於解決您的問題。這給回答者和提問者提供了小小的回報,並將問題標記爲已解決。 – 2010-11-13 05:56:39
請參閱[security.se]:[**爲什麼允許URL中的所有字符是危險的?**](http://security.stackexchange.com/q/133511/12139) – unor 2016-08-14 09:20:24