Я хочу показать HTML, который вводится пользователем из внешнего интерфейса, и тот же текст, который я должен показать в бэкэнде (панели администратора), поэтому я использую {!! !!}
в Laravel для отображения HTML, но недавно я заметил, что он не предотвращает атаку XSS, поэтому, если кто-то добавил этот код в тексте <script>alert('xss')</script>
, чем он показывает предупреждение в бэкэнде, так есть ли в Laravel способ показать HTML, но предотвратить атаку XSS.
Есть ли способ в Laravel показать html и предотвратить атаку xss?
08.08.2019
- Зачем вообще нужно выводить необработанный HTML? 08.08.2019
- На самом деле это не xss-атака, а инъекция скрипта. Вы не можете предотвратить это, не удалив весь html из входных строк. 08.08.2019
- @Thomas Я хочу показать HTML, который вводит пользователь в бэкэнде. 08.08.2019
- @Jerodev Я знаю, что хочу предотвратить этот тег, но я спрашиваю, есть ли встроенная функция в laravel для этого 08.08.2019
- Нет, но есть много функций php, которые могут вам в этом помочь, например
strip_tags
. 08.08.2019 - так есть ли список тегов, которые мне нужно удалить из HTML, чтобы предотвратить атаку? @Jerodev 08.08.2019
- Как насчет использования bbcode для HTML, введенного пользователями, в сочетании с strip_tags? 08.08.2019
- @Thomas в сохранении нет проблем, я просто хочу показать HTML, но убедиться, что XSS-атака не будет выполнена. 08.08.2019
- Да, но это очень сложная проблема, потому что браузеры иногда даже выполняют искаженный javascript, если вы достаточно их обманете. Поэтому трудно сделать это идеально. 08.08.2019
- Чтобы подтвердить мою точку зрения: owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet 08.08.2019
- Другим способом сделать это может быть Markdown — в сочетании с каким-либо визуальным редактором это предоставляет множество возможностей для редакторов, сохраняя при этом основные аспекты безопасности. 08.08.2019
- @NicoHaase, можете ли вы привести какой-нибудь пример или ссылку? 08.08.2019
Ответы:
1
Вы можете использовать очиститель html.
Импортируйте этот пакет: https://github.com/mewebstudio/Purifier.
Затем вы можете использовать
clean(Input::get('inputname'));
У него отличный конфиг, настраивайте его по своему вкусу.
опубликовать его с
$ php artisan vendor:publish --provider="Mews\Purifier\PurifierServiceProvider"
08.08.2019
2
Если вы хотите отобразить точно такой же текст или HTML, введенный пользователем, вам не нужно использовать {!! !!}
, вместо этого вы можете использовать {{ $your_text }}
. Он будет работать именно так, как вы хотите.
08.08.2019
Новые материалы
Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..
Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом
Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..
Советы по коду Laravel #2
1-) Найти
// You can specify the columns you need
// in when you use the find method on a model
User::find(‘id’, [‘email’,’name’]);
// You can increment or decrement
// a field in..
Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv)
Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..
3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации —
2. Используя квадратичную формулу —
3. Заполнив квадрат —
Давайте поймем это, решив это простое уравнение:
Мы пытаемся сделать LHS,..
Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..
Демистификация рекурсии
КОДЕКС
Демистификация рекурсии
Упрощенная концепция ошеломляющей
О чем весь этот шум?
Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..