Проблема с символами входной библиотеки CodeIgniter 2.0 - PullRequest
0 голосов
/ 21 марта 2011

Я использую codeigniter в приложении. Есть форма. В элементе textarea я написал что-то, включая

%Features%

Однако, когда я хочу повторить это с помощью $ this-> input-> post (key), я получаю что-то вроде �atures%

% Fe исчезли.

В основном файле index.php CI я пробовал var_dump($_POST) и вижу, что вышеупомянутое слово полностью в порядке. но когда я загружаю его из библиотеки ввода (фильтрация xss включена), я получаю проблему.

Когда фильтрация XSS отключена, изначально все выглядит нормально. однако, если я сохраню его в базе данных и покажу в следующий раз, я вижу ту же проблему (даже фильтрация xss отключена).

Ответы [ 2 ]

1 голос
/ 21 марта 2011

Во-первых: экранируйте переменные перед сохранением их в дБ% имеет особое значение в SQL.

Второе:% также имеет особое значение в URL, например.% 20 is% FE будет отображаться на некоторый символ, который будет декодирован с помощью input ()

1 голос
/ 21 марта 2011

%Fe случайно выглядит как URL-кодированная последовательность %FE, представляющая символ 254. Он переходит в Unicode «Я понятия не имею, что означает эта последовательность», глиф, .

Понятно, что "XSS фильтр" чрезмерно усердствует при декодировании поля при отправке.

Также очень вероятно, что URL-декодирование запускается снова в какой-то момент позже в процессе, когда вы выводите результат из базы данных. Проверьте базу данных, чтобы убедиться, что фактическая строка представляется правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...