Я использую PHP-фреймворк CodeIgniter. Я использую JS для динамической загрузки страницы PHP:
$('someIFrame').writeAttribute(
'src',
'/index.php/controller/method/' +
escape(userGeneratedString)
);
Когда я запустил это, CodeIgniter дал мне эту ошибку:
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'] = '';
Предупреждающее сообщение над этой строкой звучит страшно. Что может пойти не так, позволив всем персонажам? Буду ли я взломан?