Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 06.04.2022
Сообщений: 15

Написать функцию, которая бы защищала сайт от XSS и SSI атак

06.04.2022, 13:05. Показов 1417. Ответов 14

Студворк — интернет-сервис помощи студентам
Здравствуйте. Поставили задачу написать функцию, которая бы защищала сайт от XSS и SSI атак. Предложенные варианты простой обработки через функции htmlentities и ей подобными не подходят, потому что "нужно что-то посерьёзнее".
Есть у кого идеи?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.04.2022, 13:05
Ответы с готовыми решениями:

XSS атака на сайт
Возможно уже обсуждалось, возможно кому-то поможет Пришло сообщение от яндекса о том, что самт подвергается XSS атаке. Текст...

Как защитить сайт от атак
Вчера вечером сервер, на котором расположен мой сайт упал на 5 минут. При перезагрузке страницы вылезла ошибка Bad Gateway. Через пару...

Яндекс считает, что сайт подвергся XSS атаке.
В общем, изучаю ситуацию - ко мне, с вопросом обратился знакомый. Суть в том, что его панель вэбмастера забита сообщениями о том, что сайт...

14
26 / 21 / 7
Регистрация: 23.03.2022
Сообщений: 87
06.04.2022, 14:39
PHP
1
$noPHPEval = str_ireplace(['<?', '<?php'], '', $string);
1
0 / 0 / 0
Регистрация: 06.04.2022
Сообщений: 15
06.04.2022, 14:43  [ТС]
firatov, а для массивов GET это подойдет?
0
26 / 21 / 7
Регистрация: 23.03.2022
Сообщений: 87
06.04.2022, 14:56
И get и post и всё что только угодно

PHP
1
2
3
4
5
6
7
8
function fiVar($name, $filter = FILTER_DEFAULT,  $options = 0) {
    return filter_input($_SERVER["REQUEST_METHOD"]=="POST" ? INPUT_POST : INPUT_GET, $name, $filter, $options);
}
 
$code = fiVar('byCode', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
$code = str_ireplace(['&lt;?php', '&lt;?'], '', $code);
 
var_dump($code);
https://www.php.net/manual/ru/... nitize.php
https://www.php.net/manual/ru/... -input.php
1
0 / 0 / 0
Регистрация: 06.04.2022
Сообщений: 15
06.04.2022, 15:16  [ТС]
firatov, прошу прощения, но я не могу понять что тут происходит
Можете пояснить, пожалуйста, "byCode" это тот текст/, который проверяется фильтром в данной ситуации?

Сейчас, при выполнении, выводит это string(0) ""
0
26 / 21 / 7
Регистрация: 23.03.2022
Сообщений: 87
06.04.2022, 15:24
Цитата Сообщение от Николай4ик Посмотреть сообщение
Можете пояснить, пожалуйста, "byCode" это тот текст/, который проверяется фильтром в данной ситуации?
Это имя переменной GET или POST. Значение которого будет извлечено, и подвержено очищающему фильтру FILTER_SANITIZE_FULL_SPECIAL_CHARS

Если данной переменной нету в POST или GET то функция fiVar вернёт NULL
1
168 / 124 / 42
Регистрация: 25.10.2019
Сообщений: 476
06.04.2022, 15:32
Цитата Сообщение от Николай4ик Посмотреть сообщение
нужно что-то посерьёзнее
Сами вы такое не сделаете, но это могут сделать для вас специальные расширения из семейства safeHTML
0
0 / 0 / 0
Регистрация: 06.04.2022
Сообщений: 15
06.04.2022, 16:45  [ТС]
firatov, можете подсказать что я делаю не так, пожалуйста?


PHP
1
2
3
4
5
6
7
8
9
10
11
$source = array("foo", "bar", "hallo", "world");
 
function fiVar($name, $filter = FILTER_DEFAULT,  $options = 0)
{
    return filter_input($_SERVER["REQUEST_METHOD"] == "POST" ? INPUT_POST : INPUT_GET, $name, $filter, $options);
}
 
$code = fiVar('source', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
$code = str_ireplace(['&lt;?php', '&lt;?'], '', $code);
 
var_dump($code);
Добавлено через 10 минут
websyst_ru, мне вполне подойдет то, что пишет firatov, но я не очень силен в работе с массивами и их обработкой. А то что Вы прислали это... Слишком громоздко...
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
06.04.2022, 17:10
Цитата Сообщение от Николай4ик Посмотреть сообщение
"нужно что-то посерьёзнее"
Классная причина.
0
0 / 0 / 0
Регистрация: 06.04.2022
Сообщений: 15
06.04.2022, 17:33  [ТС]
Jewbacabra, мол, эта функция уже не актуальна (устарела)
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
06.04.2022, 17:43
Либо вы что-то перепутали (это SSI, кстати, уже не используют), либо перестаньте общаться с тем человеком на тему программирования, раз у него сложности с этим.
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
06.04.2022, 17:55
Цитата Сообщение от Николай4ик Посмотреть сообщение
эта функция уже не актуальна (устарела)
Эта функция актуальна.
0
0 / 0 / 0
Регистрация: 06.04.2022
Сообщений: 15
06.04.2022, 18:48  [ТС]
Para bellum, Jewbacabra, просто нужно именно через фильтры
0
365 / 124 / 22
Регистрация: 08.01.2015
Сообщений: 1,418
Записей в блоге: 2
07.04.2022, 18:23
Цитата Сообщение от firatov Посмотреть сообщение
$noPHPEval = str_ireplace(['<?', '<?php'], '', $string);
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Эта функция актуальна.
Я бы не сказал:
PHP
1
$string = '<<??';
Добавлено через 2 минуты
Цитата Сообщение от Para bellum Посмотреть сообщение
это SSI, кстати, уже не используют
Вполне использую.
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
07.04.2022, 18:42
Цитата Сообщение от Htext Посмотреть сообщение
Я бы не сказал:
И тем не менее функция htmlentities не объявлена deprecated, то что от нее требуется отлично выполняет, и будет выполнять. Вот только многие не умеют ей пользоваться, но ведь это не проблема данной функции.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.04.2022, 18:42
Помогаю со студенческими работами здесь

Как защитить сайт от DDOS атак
Уже 2 дня мой сайт в offline из-за того что на сервер где находится мой сайт была совершена DDOS атака.Вот я и подумал а если кто захочет...

Уязвимость в Opera позволяет осуществить XSS атаку на любой сайт
Для эксплуатации уязвимости злоумышленнику достаточно разместить специально сформированную ссылку на целевом ресурсе. На форуме...

Результат программы на сайт через SSI
Доброго времени суток! Подскажите, как включить результат работы программы на сайт, когда пользователь будет вводить вызов программы...

Написать функцию, которая которая удаляет из массива элемент с заданным индексом
Было дано задание написать функцию, которая которая удаляет из массива элемент с заданным индексом. Недостающий элемент должен быть...

Способы базовой защиты от основных видов атак на сайт wp
Добрый день Каким образом можно защитить сайт на WP от : межсайтового скриптинга (XSS) SQL-инъекций CSRF-уязвимостей;


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru