Данные в ckeditor не вставляются в БД, когда я применяю sneek / laravel-xss-middleware - PullRequest
0 голосов
/ 18 сентября 2018

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

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

CGI Общие HTML-инъекции (быстрый тест)

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

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

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

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

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

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

1 Ответ

0 голосов
/ 18 сентября 2018

Я часто использую HTMLPurifier

Выполните следующие шаги 1.install

composer require "mews/purifier:~2.0"

2.setting

 php artisan vendor:publish --provider="Mews\Purifier\PurifierServiceProvider"

config / очиститель.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,
        ],
    ],
];

use

$ article-> body = clean ($ article-> body, 'body');

Надеюсь, что вам полезно!

...