Данные в ckeditor не вставляются в базу данных, когда я применяю sneek / laravel-xss-middleware

Когда я обновляю данные из ckeditor, и они не сохраняются в базе данных должным образом, он сохраняет только текст, но таблица div и встроенный стиль не сохраняются после применения sneek / laravel-xss-middleware. Какое промежуточное ПО xss не влияет на текстовый редактор? Я пробовал другие, но это не может предотвратить xss. Кто-нибудь может порекомендовать?

Я использую nessus для сканирования Интернета на предмет безопасности после того, как использую htmlpurifier, он все еще показывает:

CGI Generic HTML Injection (быстрый тест)

Синопсис Удаленный веб-сервер может быть подвержен инъекциям HTML.

Описание На удаленном веб-сервере размещаются сценарии CGI, которые не могут должным образом дезинфицировать строки запроса с помощью вредоносного JavaScript. Используя эту проблему, злоумышленник может вызвать выполнение произвольного HTML-кода в браузере пользователя в контексте безопасности уязвимого сайта.

Удаленный веб-сервер может быть уязвим для внедрения IFRAME или атак межсайтового скриптинга:

  • Инъекции IFRAME допускают «виртуальное искажение», которое может напугать или разозлить доверчивых пользователей. Такие инъекции иногда используются для «фишинговых» атак.

  • XSS тщательно протестированы четырьмя другими скриптами.

  • Некоторые приложения (например, веб-форумы) разрешают подмножество HTML без каких-либо негативных последствий. В этом случае игнорируйте это предупреждение.

Не специфично для laravel, но htmlpurifier - лучшая библиотека php для приема html.

Devon 18.09.2018 04:47

но когда я его использую, это не предотвращает HTML-инъекции (быстрый тест).

Sreysros 18.09.2018 04:49

Что вы вводили и как использовали библиотеку? Я был бы очень обеспокоен, если бы вы могли что-то внедрить при правильном использовании htmlpurifier.

Devon 18.09.2018 04:53
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
3
168
1

Ответы 1

Я часто использую 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,
        ],
    ],
];
  1. использовать

    $ article-> body = clean ($ article-> body, 'тело');

Надеюсь вам пригодится!

Это может предотвратить 2 случая моей веб-безопасности на nessus, но все еще есть другая проблема, и я обновил свой вопрос.

Sreysros 18.09.2018 05:42

Другие вопросы по теме