跨站脚本

时间:2012-04-23 19:20:44

标签: javascript scripting

我的javascript位于我的服务器上。我想向访问者提供他们可以按照Google Analytics(分析)的方式放置在其服务器上的JavaScript代码。例如:

<script type="text/javascript" src="http://www.somedomain.com/script/script.js?id=2001102"></script>

我把所有事情都搞定了,我需要抓住id。我只是不确定该用什么。

我尝试了location.href和location.search,但是这给了我嵌入脚本的文件的url + param,而不是“script.js?id = XSOMEIDX”

在script.js中我有以下内容:

function requestContent() {   
var script = document.createElement("script");
script.src = "http://www.somedomain.com/script/xss_script.php?id="I WANT TO INPUT ID HERE+"&url="+location.href;
document.getElementsByTagName("head")[0].appendChild(script);

}

我怎么能把id = XSOMEIDX并把它放在xss_script.php中?id =?

提前致谢!

2 个答案:

答案 0 :(得分:1)

你可以使用URL重写来获取id = XSOMEIDX并将其放在xss_script.php中吗?id =

执行此操作的mod重写规则如下所示:

RewriteRule ^/scripts/([a-zA-Z0-0]+)/script.js$ /scripts/script.php?id=$1

这样你就可以简单地要求人们加入yoursite.com/scripts/ {id} /scripts.js

答案 1 :(得分:0)

如何设置具有特定属性的外部脚本标记?

<script data-my-script="my_value" type="text/javascript" src="http://www.somedomain.com/script/script.js?id=2001102"></script>

在现代浏览器中,您可以执行

var scripts = document.querySelectorAll("script[src][data-my-script]");
$.each(scripts, function(i, script) { console.log(script.src); });

并遍历nodeList ...

注意:querySelectorAll不能跨浏览器工作 注意:querySelectorAll返回一个类似数组的对象