[英]How to detect HTTP request by analysing JavaScript & HTML?
我想知道我们是否可以对JavaScript代码进行一些分析,以检测包含这些JS的网页是否会向其他域发送HTTP请求。
例如,有人将他们的静态网页文件放在我的网络服务器(DOMAIN A)中,我不希望他们的文件向其他网站发送HTTP请求(例如,DOMAIN B)。
他们有一些方法可以做到这一点:
使用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),然后查看它是否发出任何此类请求是可能的,但如果恶意代码知道您正在这样做,他们可能会尝试解决它。
您可以考虑采用不允许HTML标记的Wiki /论坛中使用的方法,但使用自定义标记(提供非常有限的HTML功能子集)来为客户端生成HTML。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.