Когда я обновляю данные из ckeditor, и они не сохраняются в базе данных должным образом, он сохраняет только текст, но таблица div и встроенный стиль не сохраняются после применения sneek / laravel-xss-middleware. Какое промежуточное ПО xss не влияет на текстовый редактор? Я пробовал другие, но это не может предотвратить xss. Кто-нибудь может порекомендовать?
Я использую nessus для сканирования Интернета на предмет безопасности после того, как использую htmlpurifier, он все еще показывает:
CGI Generic HTML Injection (быстрый тест)
Синопсис Удаленный веб-сервер может быть подвержен инъекциям HTML.
Описание На удаленном веб-сервере размещаются сценарии CGI, которые не могут должным образом дезинфицировать строки запроса с помощью вредоносного JavaScript. Используя эту проблему, злоумышленник может вызвать выполнение произвольного HTML-кода в браузере пользователя в контексте безопасности уязвимого сайта.
Удаленный веб-сервер может быть уязвим для внедрения IFRAME или атак межсайтового скриптинга:
Инъекции IFRAME допускают «виртуальное искажение», которое может напугать или разозлить доверчивых пользователей. Такие инъекции иногда используются для «фишинговых» атак.
XSS тщательно протестированы четырьмя другими скриптами.
Некоторые приложения (например, веб-форумы) разрешают подмножество HTML без каких-либо негативных последствий. В этом случае игнорируйте это предупреждение.
но когда я его использую, это не предотвращает HTML-инъекции (быстрый тест).
Что вы вводили и как использовали библиотеку? Я был бы очень обеспокоен, если бы вы могли что-то внедрить при правильном использовании htmlpurifier.






Я часто использую HTMLPurifier
Выполните следующие шаги 1. установить
composer require "mews/purifier:~2.0"
2. настройка
php artisan vendor:publish --provider = "Mews\Purifier\PurifierServiceProvider"
config / purifier.php
<?php
return [
'encoding' => 'UTF-8',
'finalize' => true,
'cachePath' => storage_path('app/purifier'),
'cacheFileMode' => 0755,
'settings' => [
'body' => [
'HTML.Doctype' => 'XHTML 1.0 Transitional',
'HTML.Allowed' => 'div,b,strong,i,em,a[href|title],ul,ol,ol[start],li,p[style],br,span[style],img[width|height|alt|src],*[style|class],pre,hr,code,h2,h3,h4,h5,h6,blockquote,del,table,thead,tbody,tr,th,td',
'CSS.AllowedProperties' => 'font,font-size,font-weight,font-style,margin,width,height,font-family,text-decoration,padding-left,color,background-color,text-align',
'AutoFormat.AutoParagraph' => true,
'AutoFormat.RemoveEmpty' => true,
],
],
];
использовать
$ article-> body = clean ($ article-> body, 'тело');
Надеюсь вам пригодится!
Это может предотвратить 2 случая моей веб-безопасности на nessus, но все еще есть другая проблема, и я обновил свой вопрос.
Не специфично для laravel, но htmlpurifier - лучшая библиотека php для приема html.