WYSIWYG редактор секретный вопрос (предотвращение злонамеренного ввода) - PullRequest
3 голосов
/ 15 июня 2010

Я использую jWYSIWYG в форме, в которой я создаю эти записи в базе данных, и мне было интересно, как можно предотвратить попытки злоумышленника ввести код в кадр?

Разве редактору не нужны скобки (которые я обычно удаляю во время пост-процесса) для отображения стилей?

Ответы [ 3 ]

2 голосов
/ 15 июня 2010

В конечном итоге , результат будет в ваших руках, когда вы будете вставлять его в базу данных, время, которое вам нужно, чтобы убрать что-либо вредоносное.Простейшим способом будет пробальное использование htmlentites против таких данных, однако есть и другие способы, которыми злоумышленники могут обойти это.Вот хороший скрипт, также реализованный популярной php-инфраструктурой Kohana для класса input против возможных атак XSS:

http://svn.bitflux.ch/repos/public/popoon/trunk/classes/externalinput.php

2 голосов
/ 15 июня 2010

Если редактор допускает произвольный HTML, вы вступаете в проигрышную битву, поскольку пользователи могут просто использовать редактор для создания своего вредоносного контента.

Если редактор допускает только подмножество разметки, то он должен использовать альтернативный синтаксис (аналогично тому, как это делает stackoverflow), или вам следует избегать всего HTML, кроме определенных тегов из белого списка.

Обратите внимание, что это довольно легко сделать неправильно, поэтому я бы использовал стороннее решение, которое было соответствующим образом протестировано на безопасность.

1 голос
/ 16 июня 2010

Я сталкивался с подобными ситуациями, и я начал использовать HTMLPurifier на своем бэкэнде PHP, что предотвратит все возможные атаки. Он прост в установке и позволит вам внести в белый список элементы и атрибуты. Он также предотвращает атаки XSS, которые все еще могут существовать при использовании htmlentities.

...