Estoy usando el framework CodeIgniter PHP. Yo uso JS para cargar dinámicamente una página PHP:Permitir cualquier carácter en la URL en CodeIgniter
$('someIFrame').writeAttribute(
'src',
'/index.php/controller/method/' +
escape(userGeneratedString)
);
Cuando me encontré con esto, CodeIgniter me dio este error:
http://192.168.0.81/index.php/controller/method/dude%27s%20face
An Error Was Encountered
The URI you submitted has disallowed characters.
Esto es totalmente falso ya que la URL en cuestión no contiene ningún carácter no permitidos . Mi archivo de configuración permite que todos los personajes presentes en la URL:
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_()@\-';
Y compré frustrado y solo permitió que todos los personajes para evitar el error.
// 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'] = '';
El mensaje de advertencia sobre esta línea suena aterrador. ¿Qué puede salir mal permitiendo a todos los personajes? ¿Seré pirateado?
@thisMayham Desde ** ** implica que no se preocupan por dar retroalimentación. No es lo mismo, ¿sí? ;) @JoJo Puede aceptar respuestas haciendo clic en el esquema de verificación verde al lado de las respuestas; esto significa que esa respuesta en particular ha ayudado a resolver su problema. Esto le da una pequeña recompensa tanto al que responde como al que pide su esfuerzo, y marca la pregunta como resuelta. –
Consulte también en [security.se]: [** ¿Por qué es peligroso permitir todos los caracteres en una URL? **] (http://security.stackexchange.com/q/133511/12139) – unor