2012-04-23 100 views
0

我有一个JavaScript,坐在我的服务器上。我想为访问者提供JavaScript代码,以便Google Analytics(分析)可以将它们放在服务器上。例如:跨站点脚本

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

我得到了一切工作,直到我需要抢ID。我只是不知道该用什么。

我都尝试location.href和location.search,但给我的网址+ 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 =?

在此先感谢!

+0

我不会” t调用脚本'xss_script.php',大多数人会认为这是你在那里尝试的破解。 – Dunhamzzz 2012-04-23 19:22:59

+0

你可以让你的'script.js'成为一个php页面吗? – mellamokb 2012-04-23 19:23:16

+0

@Dunhamzzz是的,我知道,那只是为了说明的目的。 – Hugo 2012-04-23 19:24:04

回答

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); }); 

和遍历节点列表...

注:querySelectorAll工作不跨浏览器 注:querySelectorAll是返回一个数组-like object

1

您可以使用URL重写获取id = XSOMEIDX并将其放入xss_script.php?id =

国防部重写规则,这样做是这样的:

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

这种方式,你可以简单地要求市民包括yoursite.com/scripts/{id}/scripts.js

+0

我认为这很简单,适用于我。 – Hugo 2012-04-23 20:30:03

+0

快速跟进。我希望它能像这样工作: RewriteEngine On RewriteRule^xss/script.js?id =([a-zA-Z0-0] +)$ xss/script.php?id = $ 1 [L] 但那不起作用......但是,当我尝试它时,它的确如此......如果可能的话,我宁愿使用.js?id =语法。 – Hugo 2012-04-23 20:49:33