XSS защита
XSS защита
Здравствуйте дорогие знатоки.
Я вот ломаю голову над тем как защитить Active form от xss.
Внезапно обнаружил что в одном месте у меня проходит js и срабатывает на странице, сессию украсть не получается но все равно неприятно.
Ну предположим я знаю как защитится от xss - напрмиер, поставить проверку на спец символы и тп , но мне хотелось бы узнать есть ли стандартные методы для защиты.
То есть мне просто надо будет просматривать все поля и вручную ставить проверку.
Возможно ли поставить где-то в конфиге, типа запретить спецсимволы в строке?
Я вот ломаю голову над тем как защитить Active form от xss.
Внезапно обнаружил что в одном месте у меня проходит js и срабатывает на странице, сессию украсть не получается но все равно неприятно.
Ну предположим я знаю как защитится от xss - напрмиер, поставить проверку на спец символы и тп , но мне хотелось бы узнать есть ли стандартные методы для защиты.
То есть мне просто надо будет просматривать все поля и вручную ставить проверку.
Возможно ли поставить где-то в конфиге, типа запретить спецсимволы в строке?
Re: XSS защита
При выводе
Код: Выделить всё
<h1><?= Html::encode($model->title) ?></h1>
<div><?= Yii::$app->formatter->asHtml($model->content) ?></div>
Re: XSS защита
при выводе пурифайером обрабатывать слишком ресурсоемко.
Лучше скажите как к вам проходит тот js и от кого.
Лучше скажите как к вам проходит тот js и от кого.
Yii2 universal module sceleton - for basic and advanced templates
Re: XSS защита
От меня приходит, тестирую и делаю всякие глупости.maleks писал(а):при выводе пурифайером обрабатывать слишком ресурсоемко.
Лучше скажите как к вам проходит тот js и от кого.
Ну да. хороший вариант.ElisDN писал(а):При выводеКод: Выделить всё
<h1><?= Html::encode($model->title) ?></h1> <div><?= Yii::$app->formatter->asHtml($model->content) ?></div>
Re: XSS защита
где то (давно еще) читал предложение хранить данные (в которых может быть тот же html) в двух колонках, очищенные (для вывода) и оригинальные. Тогда нагрузка будет только при сохранении разово.maleks писал(а):при выводе пурифайером обрабатывать слишком ресурсоемко.
Лучше скажите как к вам проходит тот js и от кого.
P.s. я не агитирую за этот вариант, просто как вариант подумать. В некоторых случаях может быть useful
Re: XSS защита
Я так делаю если используется маркдаун. Одно поле для оригинала и только для редактирования, другое уже отрендеренный маркдаун для вывода. Очень удобно, можно выводить без всяких фильтров.S c писал(а):хранить данные (в которых может быть тот же html) в двух колонках, очищенные (для вывода) и оригинальные. Тогда нагрузка будет только при сохранении разово.
2b||!2b Just read the instructions
Re: XSS защита
хм. а зачем хранить неотфарматированый текст? просто так, на всякий случай. да интересно.
Re: XSS защита
Если редактор сайта что то ввел не так, то этот текст потом к редактированию надо точно таким же и отдать к поправке.mader писал(а):хм. а зачем хранить неотфарматированый текст? просто так, на всякий случай. да интересно.
Вон выше пример с маркдауном, но для тех же bb-кодов тоже самое. Для редактирования должны появиться те же bb-кода. Даже если просто html в текстарию вводишь, без визивигов, надо же как то переносы строк обработать в абзацы.
Да и вообще - не изменять данные при сохранении в базу - вроде как аксиома.
Поэтому хранят 2 версии: исходную, формат, и подготовленный отформатированный кеш.
В друпале так сделано.
Yii2 universal module sceleton - for basic and advanced templates
Re: XSS защита
СПАСИБО.S c писал(а):где то (давно еще) читал предложение хранить данные (в которых может быть тот же html) в двух колонках, очищенные (для вывода) и оригинальные. Тогда нагрузка будет только при сохранении разово.maleks писал(а):при выводе пурифайером обрабатывать слишком ресурсоемко.
Лучше скажите как к вам проходит тот js и от кого.
P.s. я не агитирую за этот вариант, просто как вариант подумать. В некоторых случаях может быть useful
Re: XSS защита
СПАСИБО.maleks писал(а): Если редактор сайта что то ввел не так, то этот текст потом к редактированию надо точно таким же и отдать к поправке.
Вон выше пример с маркдауном, но для тех же bb-кодов тоже самое. Для редактирования должны появиться те же bb-кода. Даже если просто html в текстарию вводишь, без визивигов, надо же как то переносы строк обработать в абзацы.
Да и вообще - не изменять данные при сохранении в базу - вроде как аксиома.
Поэтому хранят 2 версии: исходную, формат, и подготовленный отформатированный кеш.
В друпале так сделано.
Re: XSS защита
В общем, я вначале сделал тупо htmlspecialchars(), потом переделывать не стал. потом сделал
как показывает практика, все равно никто ничего проверять и переделывать не будет. я имею ввиду пурифатеры, и 2 записи в базе... через месяц все забудут, сколько там записей и зачем они нужны. Пусть сразу пользователи сообщения пишут нормально.
Код: Выделить всё
<h1><?= Html::encode($model->title) ?></h1>
<div><?= Yii::$app->formatter->asHtml($model->content) ?></div>
как показывает практика, все равно никто ничего проверять и переделывать не будет. я имею ввиду пурифатеры, и 2 записи в базе... через месяц все забудут, сколько там записей и зачем они нужны. Пусть сразу пользователи сообщения пишут нормально.
Re: XSS защита
Yii2 universal module sceleton - for basic and advanced templates