Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   XSS и html - безопасно? (https://javascript.ru/forum/jquery/71193-xss-i-html-bezopasno.html)

dima85 01.11.2017 11:16

XSS и html - безопасно?
 
Скажите пожалуйста безопасно ли использовать такую конструкцию?

Такой url вроде как проглатывается и alert не вылетает.
/?test=<script>alert('ALARM');</script>text


Код:

window.onload = function() {
$("#test").html(window.location.search);
}

<span id="test"></span>



На странице я вижу:
<span id="test">%3Cscript%3Ealert(%27ALARM%27);%3C/script%3E!</span>

laimas 01.11.2017 11:28

dima85,
зачем выводить на страницу параметры поиска?

dima85 01.11.2017 11:33

Меня просто сам факт интересует. Безопасно ли это. Если нет, то каким образом можно вывести alert на страницу и как обезопаситься.

laimas 01.11.2017 11:45

Цитата:

Сообщение от dima85
Меня просто сам факт интересует.

Факт чего? Это действие на самой странице и показывает url-кодированный текст. Но параметры поиска для сервера, и не дай бог в этом случае вы выведите то что он получил, то таки "ALARM" вы увидите.

dima85 01.11.2017 11:54

То есть если у меня простая html страничка, без всяких php запросов и скриптов. Такой js код безопасен?


Цитата:

Но параметры поиска для сервера, и не дай бог в этом случае вы выведите то что он получил, то таки "ALARM" вы увидите.
Можете показать какой-то простой пример?

Rasy 01.11.2017 12:01

dima85,
надо алерт выполнить?

dima85 01.11.2017 12:04

@Rasy, надо, пытаюсь разобраться в XSS атаках. :)

Rasy 01.11.2017 12:12

Цитата:

Сообщение от dima85
без всяких php запросов и скриптов

там атаковать нечего)

dima85 01.11.2017 12:14

Ну а coockie слить например? Есть ведь и другие страницы на сервере.

Мы уходим от вопроса. Как вывести alert на страницу, возможно ли это?

laimas 01.11.2017 12:18

Цитата:

Сообщение от dima85
То есть если у меня простая html страничка, без всяких php запросов и скриптов.

У РНР нет запросов, это к нему запросы, и ваша задача контролировать вывод клиенту со стороны сервера. Вот где можно ожидать XSS. Если в этом посте я помещу текст <script>alert('ALARM');</script>, а сервер его необработанный выведет на страницу, то скрипт будет запущен:

//это опасно
echo "<script>alert('ALARM');</script>";
//это безопасно
echo htmlspecialchars("<script>alert('ALARM');</script>");


Ваш код вреда не принесет, но он и бесполезен на все 100.


Часовой пояс GMT +3, время: 12:01.