межсайтовый скриптинг с использованием тега script, изменение src тега script, можем ли мы использовать id для тега script - PullRequest
3 голосов
/ 19 октября 2010
<body>
<!-- some html code -->

<script src='some.js'></script>

<!-- some html code -->

</body>

Скрипт some.js загружает форму. когда я нажимаю обновить в этой форме, я не отправляю форму, вместо этого я формирую строку запроса и хочу отправить ее как some.js? ключ = значение

Теперь мне нужно изменить src тега script.

Если мы изменим src, будет ли он работать, снова запросив новый контент? Можем ли мы использовать идентификатор для тега скрипта, и если да, будет ли он поддерживаться всеми браузерами?

когда будет получено новое содержимое, я удалю старое содержимое, отображаемое этим сценарием. я думаю, что лучше иметь div и поместить все содержимое внутри этого div. я переписываю script.js в script.php в моем htaccess, просто показываю пользователям, что это просто доступ к javascript или нет проблем для меня, если я дам .php.

Выше приведено основное требование.

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

вы можете дать рекомендации по использованию этого стандартным способом, который будет включать обновление контента с сайта x.

так что это то, что люди говорят как межсайтовый скриптинг, по требованию javascript и, пожалуйста, добавьте больше терминологии, если таковые имеются, чтобы я сам обновился.

любой ответ будет полезен.

Ответы [ 4 ]

2 голосов
/ 19 октября 2010

Как уже упоминалось @tpeczek, для изменения атрибута скрипта src недостаточно, некоторые браузеры не будут перезагружать скрипт.
Для замены тега используйте следующее:

var oldScript = document.getElementById('someID');
var script = document.createElement("script");        
script.setAttribute("type","text/javascript");                
script.setAttribute("id","someID");
script.setAttribute("src",url);

if (oldScript == null) {               
    document.body.appendChild(script);
} else {
    document.body.replaceChild(script, oldScript);
}
2 голосов
/ 19 октября 2010

Согласно W3C (http://www.w3.org/TR/REC-html40/interact/scripts.html#h-18.2.1) тег 'script' не поддерживает никаких стандартных атрибутов (включая 'id'), однако он будет работать в большинстве браузеров. Вместо замены атрибута 'script' тега 'src' я бы предложите удалить тег и добавить новый - это более надежно. Я настоятельно рекомендую прочитать о JSONP и Cross-Origin Resource Sharing (http://www.w3.org/TR/cors/) - это стандарты, которые должны помочь вам достичь того, чего вы хотите.

1 голос
/ 23 августа 2012

UPDATE: Как глобальный атрибут , id представляется поддерживаемым для script тегов в HTML5.

1 голос
/ 29 октября 2010

не могли бы вы пойти по старинке, пройтись по всем элементам скрипта и проверить src, чтобы найти some.js?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...