2014-09-18 4 views
2

Я работаю с приложением, которое было обновлено до 2.5 от 1.1 в последнее время.Cakephp 2.5 и снятие HTML

Я всегда думал, что родное поведение cakephp с текстовыми полями и текстовыми областями заключалось в том, чтобы отделять html-теги от ввода.

Недавно мы обнаружили, что этого не происходит в этом приложении.

Итак, мой вопрос в этом. Является ли мое первоначальное предположение неправильным, и торт не справляется с этим по умолчанию, и мы должны делать это сами явно. Или можно отключить это, и, возможно, это было то, что происходило здесь, и где бы я хотел найти это? Был ли какой-то поиск, включая сайт пирога, но продолжал ссылаться на санированную полезность пирога, который устарел в 2.3

Любая помощь или руководство приветствуется.

+0

Это может быть полезно: http://www.sitepoint.com/php-security-cross-site-scripting-attacks-xss/ – Costa

ответ

1

Вы имеете в виду Данные по санитарии.

В CakePHP 1.x он обрабатывался через вспомогательный класс.

http://book.cakephp.org/1.3/en/The-Manual/Common-Tasks-With-CakePHP/Data-Sanitization.html

санитарных данные никогда не было автоматически или по умолчанию для любого входного сигнала, полученным в контроллере, но при обновлении до CakePHP 2.5 помощника санитарного был удален. Таким образом, вы должны удалить его, не понимая его во время миграции на торт 2.5

http://book.cakephp.org/2.0/en/core-utility-libraries/sanitize.html

Причина, по которой был снят, потому что это было небезопасно, и легко обойти хакерами. Сайты CakePHP 1.x подвержены атакам XSS.

http://en.wikipedia.org/wiki/Cross-site_scripting

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

https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet

Не зная природы формы вы дезинфицирующим это не возможно для меня, чтобы рекомендовать решение. Самый безопасный подход состоял бы в том, чтобы вырезать все не-буквенно-цифровые символы, кроме знаков пунктуации.

0

В зависимости от уровня санитарии вам необходимо взглянуть на HtmlPurifier. Либо используйте lib напрямую, либо this plugin для CakePHP. Он также заботится о XSS.

HtmlPurifier может быть настроен на фильтрацию HTML очень специфично. Например, вы можете разрешить <a>, но не разрешать какой-либо другой атрибут, кроме src или только id, например.

 Смежные вопросы

  • Нет связанных вопросов^_^