XSS защита

Предварительное обсуждение найденных ошибок перед отправкой их авторам фреймворка, а также внесение новых предложений.
Ответить
mader
Сообщения: 84
Зарегистрирован: 2015.06.15, 13:44
Откуда: Воронеж

XSS защита

Сообщение mader »

Здравствуйте дорогие знатоки.
Я вот ломаю голову над тем как защитить Active form от xss.
Внезапно обнаружил что в одном месте у меня проходит js и срабатывает на странице, сессию украсть не получается но все равно неприятно.

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

То есть мне просто надо будет просматривать все поля и вручную ставить проверку.
Возможно ли поставить где-то в конфиге, типа запретить спецсимволы в строке?
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: XSS защита

Сообщение ElisDN »

При выводе

Код: Выделить всё

<h1><?= Html::encode($model->title) ?></h1>
<div><?= Yii::$app->formatter->asHtml($model->content) ?></div>
Аватара пользователя
maleks
Сообщения: 1985
Зарегистрирован: 2012.12.26, 12:56

Re: XSS защита

Сообщение maleks »

при выводе пурифайером обрабатывать слишком ресурсоемко.
Лучше скажите как к вам проходит тот js и от кого.
Yii2 universal module sceleton - for basic and advanced templates
mader
Сообщения: 84
Зарегистрирован: 2015.06.15, 13:44
Откуда: Воронеж

Re: XSS защита

Сообщение mader »

maleks писал(а):при выводе пурифайером обрабатывать слишком ресурсоемко.
Лучше скажите как к вам проходит тот js и от кого.
От меня приходит, тестирую и делаю всякие глупости.
ElisDN писал(а):При выводе

Код: Выделить всё

<h1><?= Html::encode($model->title) ?></h1>
<div><?= Yii::$app->formatter->asHtml($model->content) ?></div>
Ну да. хороший вариант.
Аватара пользователя
S c
Сообщения: 883
Зарегистрирован: 2012.04.11, 14:46

Re: XSS защита

Сообщение S c »

maleks писал(а):при выводе пурифайером обрабатывать слишком ресурсоемко.
Лучше скажите как к вам проходит тот js и от кого.
где то (давно еще) читал предложение хранить данные (в которых может быть тот же html) в двух колонках, очищенные (для вывода) и оригинальные. Тогда нагрузка будет только при сохранении разово.
P.s. я не агитирую за этот вариант, просто как вариант подумать. В некоторых случаях может быть useful
Аватара пользователя
zabachok
Сообщения: 522
Зарегистрирован: 2013.12.16, 14:38

Re: XSS защита

Сообщение zabachok »

S c писал(а):хранить данные (в которых может быть тот же html) в двух колонках, очищенные (для вывода) и оригинальные. Тогда нагрузка будет только при сохранении разово.
Я так делаю если используется маркдаун. Одно поле для оригинала и только для редактирования, другое уже отрендеренный маркдаун для вывода. Очень удобно, можно выводить без всяких фильтров.
2b||!2b Just read the instructions
mader
Сообщения: 84
Зарегистрирован: 2015.06.15, 13:44
Откуда: Воронеж

Re: XSS защита

Сообщение mader »

хм. а зачем хранить неотфарматированый текст? просто так, на всякий случай. да интересно.
Аватара пользователя
maleks
Сообщения: 1985
Зарегистрирован: 2012.12.26, 12:56

Re: XSS защита

Сообщение maleks »

mader писал(а):хм. а зачем хранить неотфарматированый текст? просто так, на всякий случай. да интересно.
Если редактор сайта что то ввел не так, то этот текст потом к редактированию надо точно таким же и отдать к поправке.
Вон выше пример с маркдауном, но для тех же bb-кодов тоже самое. Для редактирования должны появиться те же bb-кода. Даже если просто html в текстарию вводишь, без визивигов, надо же как то переносы строк обработать в абзацы.
Да и вообще - не изменять данные при сохранении в базу - вроде как аксиома.
Поэтому хранят 2 версии: исходную, формат, и подготовленный отформатированный кеш.
В друпале так сделано.
Yii2 universal module sceleton - for basic and advanced templates
mader
Сообщения: 84
Зарегистрирован: 2015.06.15, 13:44
Откуда: Воронеж

Re: XSS защита

Сообщение mader »

S c писал(а):
maleks писал(а):при выводе пурифайером обрабатывать слишком ресурсоемко.
Лучше скажите как к вам проходит тот js и от кого.
где то (давно еще) читал предложение хранить данные (в которых может быть тот же html) в двух колонках, очищенные (для вывода) и оригинальные. Тогда нагрузка будет только при сохранении разово.
P.s. я не агитирую за этот вариант, просто как вариант подумать. В некоторых случаях может быть useful
СПАСИБО.
mader
Сообщения: 84
Зарегистрирован: 2015.06.15, 13:44
Откуда: Воронеж

Re: XSS защита

Сообщение mader »

maleks писал(а): Если редактор сайта что то ввел не так, то этот текст потом к редактированию надо точно таким же и отдать к поправке.
Вон выше пример с маркдауном, но для тех же bb-кодов тоже самое. Для редактирования должны появиться те же bb-кода. Даже если просто html в текстарию вводишь, без визивигов, надо же как то переносы строк обработать в абзацы.
Да и вообще - не изменять данные при сохранении в базу - вроде как аксиома.
Поэтому хранят 2 версии: исходную, формат, и подготовленный отформатированный кеш.
В друпале так сделано.
СПАСИБО.
mader
Сообщения: 84
Зарегистрирован: 2015.06.15, 13:44
Откуда: Воронеж

Re: XSS защита

Сообщение mader »

В общем, я вначале сделал тупо htmlspecialchars(), потом переделывать не стал. потом сделал

Код: Выделить всё

<h1><?= Html::encode($model->title) ?></h1>
<div><?= Yii::$app->formatter->asHtml($model->content) ?></div>

как показывает практика, все равно никто ничего проверять и переделывать не будет. я имею ввиду пурифатеры, и 2 записи в базе... через месяц все забудут, сколько там записей и зачем они нужны. Пусть сразу пользователи сообщения пишут нормально.
Аватара пользователя
maleks
Сообщения: 1985
Зарегистрирован: 2012.12.26, 12:56

Re: XSS защита

Сообщение maleks »

:)
Yii2 universal module sceleton - for basic and advanced templates
Ответить