У моей компании есть партнеры, которые внедряют несколько наших веб-страниц на их сайт с помощью динамически генерируемого iframe. Исходный URL-адрес iframe исходит из строки запроса на сайте партнера, поэтому я хочу убедиться, что нет риска атаки с использованием межсайтового сценария, поскольку мы используем ненадежный вход в качестве источника iframe.Предотвращение атаки XSS при использовании CreateElement Javascript
URL-адрес источника всегда является относительным URL-адресом (наше имя хоста жестко закодировано в Javascript и добавлено к относительному URL-адресу), и мы делаем некоторую проверку на входном URL-адресе, чтобы убедиться, что он начинается с «index.php», поскольку все запросы направляются через эту страницу на нашем сайте. Например, если следующий URL были доступны на сайте клиента:
www.ourpartner.com/home.html?url=index.php%3Fid%3D999
Источник URL для фрейма будет http://www.oursite.com/index.php?id=999. IFrame генерируется в Javascript с использованием createElement следующим образом:
...
// We assign the url value from the query string to the variable urlparam
if(! urlparam.match(/^index\.php/i)) {
// Error. Quit.
}
var myiframe = document.createElement('iframe');
myiframe.src = 'http://www.oursite.com/' + urlparam;
document.getElementById('iframe_container').appendChild(myiframe);
Есть ли Чейс злоумышленник может внедрить вредоносный URL в источник фрейма? Браузеры, похоже, избегают любых объектов HTML, которые могут отображаться в URL-адресе, таких как двойные кавычки и скобки влево/вправо. Должны ли мы принимать какие-либо дополнительные меры предосторожности с URL-адресом?
Спасибо!
Я думал, что это так, но хотел убедиться. Спасибо за вашу помощь. –