Нарушение инъекции через теневой корень
Я не программист JS. У меня недостаточно навыков, чтобы проверить это самому, поэтому я прошу помощи. Можно ли вставить скрипт или тег HTML в shadow_root
элемент для проверки дыр в сети?
Например <script>alert("alert");</script>
Может быть, что-то еще, как с помощью <content>
?
Главный вопрос: это возможно или нет?
И дополнительный вопрос: как?
1 ответ
В соответствии с тем, что я могу найти в комментариях, вы хотите знать, могут ли ваши пользователи вводить код на страницах вашего сайта. Ответ - да, у пользователя есть все права играть с DOM перед ним. Самый простой способ - просто открыть инструменты разработчиков вашего любимого браузера.
Сделай сам... Откройте окно инструментов вашего разработчика здесь, дойдите до консоли и напишите
document.write("<script>alert(\"alert\");</script>");
Как видите, вы можете изменить что угодно, даже непосредственно в Stackru. Но это не причинит никакого вреда другим, только вам. Хотя вы можете сделать это на SO, это означает, что это вообще небезопасно! Просто ваш браузер имеет полный контроль над тем, что он получил...
Теперь вопрос должен быть в том, как я могу обнаружить возможные точки в моем приложении, где такая инъекция может быть вредной.
Ответ прост, никогда не доверяйте вводу клиента. Сервер должен всегда проверять входные данные и обеспечивать невозможность внедрения базы данных. При отображении контента, предоставленного пользователем, следует также убедиться в отсутствии скрытого тега кода, который будет запускаться браузером пользователей, просматривающих веб-страницу.
Stackru не подходит для такого обмена знаниями. Я предлагаю вам прочитать о безопасности веб-сайта в целом, а затем найти более подробные ресурсы, относящиеся к вашему технологическому стеку и использованию, которое вы используете со стороны пользователей.
Кроме того, если вы просите это для реальной работы, вам дали. Самое главное, что вы должны сказать своему менеджеру, что вы не годитесь для этой задачи. Не потому что вам не хватает таланта, а потому что вам не хватает знаний. Это показывает, что вы достаточно умны, чтобы видеть задачу очень важной (безопасность очень важна), и вы не готовы играть с репутацией компании.
Посетите сайт https://workplace.stackexchange.com/, если вы хотите узнать, как лучше объяснить это начальству.