【发布时间】:2015-08-14 09:49:10
【问题描述】:
我想知道我们是否可以对 JavaScript 代码进行一些分析,以检测包含这些 JS 的网页是否会向其他域发送 HTTP 请求。
例如,有人将他们的静态网页文件放在我的网络服务器(域 A)中,我不希望他们的文件向其他站点(例如域 B)发送 HTTP 请求。
他们有一些方法可以做到这一点:
使用img标签:
<img src=“http://domain.b.com/statics”>使用脚本标签。
使用表单标签。
使用 iframe 标签。
另外,我们还可以使用JS生成HTTP请求,例如:
var f = document.createElement('form');
f.action = "http://domain.b.com/statics";
...
Javascript 可以被混淆,上面的 javascript 可以被压缩为:
eval(function(p,a,c,k,e,d){e=function(c){return c};if(!''.replace(/^/,String)){while(c--){d[c]=k[c]||c}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('4 0=3.2(\'1\');0.5="9://8.7.6/10";',10,11,'f|form|createElement|document|var|action|com|b|domain|http|statics'.split('|'),0,{}))
【问题讨论】:
-
看看 phantomjs。
-
你想通过编程还是手动分析这个?如果手动,Firebug 将是检查 HTTP 事务的最佳选择。
标签: javascript html security html-sanitizing