CodeIgniter ошибка Disallowed Key Characters

oux
На сайте с 07.02.2010
Offline
83
oux
16157

Доброго времени суток.

При интеграции скрипта в фреймфорк CodeIgniter весь сайт блокируется и выводится ошибка Disallowed Key Characters. Своего рода защита фреймворка? Как обойти\отключить? И как восстановить сайт?

Работа с формой, метод post

IL
На сайте с 20.04.2007
Offline
435
#1

В system/application/config/config.php указаны допустимые для адреса символы

$config['permitted_uri_chars']='';// вообще уберёт проверку URI

Если (скорее всего) не поможет - причина похожая. Кроме URL CI проверяет и ключи в "суперглобальных" массивах. Ситуация может возникнуть, когда, к примеру, в ключе $_COOKIE-переменной "некорректный" символ.

p.s. Какая версия CI? И, если не секрет, что должен делать скрипт (как влияет на глобальные массивы)?

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
oux
На сайте с 07.02.2010
Offline
83
oux
#2

в /system/core/Input.php убрал данную часть и сайт ожил:

if ( ! preg_match("/^[a-z0-9:_\/-]+$/i", $str))
{
exit('Disallowed Key Characters.');
}

Правильно ли?

ivan-lev, скрипт перенаправляет на другой сайт.

IL
На сайте с 20.04.2007
Offline
435
#3

Это оно и есть. Если работает и не забудется при обновлении - можно и оставить ;)

А вообще, более правильно унаследоваться от CI_Input и переопределить _sanitize_globals

http://codeigniter.com/user_guide/general/core_classes.html абзац Extending Core Class

Ayavryk
На сайте с 11.10.2003
Offline
209
#4
oux:
Правильно ли?

Имхо не очень. Во-первых, это часть защиты при передаче параметров, а во-вторых ядро лучше не менять.

Но если хочется то ищите

в config.php есть блок

Allowed URL Characters там указываются допустимые символы

$config['permitted_uri_chars'] = 'a-z0-9_';

и

URI PROTOCOL там указывается возможность GET-запроса

$config['enable_query_strings'] = TRUE; - разрешает GET

У себя я разрешаю GET только для специального метода, для остальных оставляю дефолтный запрет. И опять же только в config

Тынгыр, мынгыр, комсомол (http://erum.ru). Ехари, ехари, (жалобно) аяврик. /народная тунгусская песня/

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий