检测 xssi 的动态 javascript
Detect dynamic javascript for xssi
我正在尝试了解跨站点脚本包含。我已经阅读了 sebastian lekeis (click here for paper and slide and video link) 的论文并对此有了一些了解。这里检测动态 javascript 是方法的一部分,我在这里有些困惑。
动态javascript检测到底是什么意思。这里告知同一个脚本文件将被请求两次。一个有身份验证,另一个没有。但我的困惑是,如果我请求假设 script.js
文件两次,它会有什么不同。服务器将始终发送具有相同代码行的文件。不是吗??
浏览器获取脚本文件后会执行该文件,完成后可能会有所不同。
假设,
$http.get("home/GetInfo", function(response){
$scope.userName = response;
});
此处 $scope.userName
值可能不同,但脚本文件将保持不变。
我的理解有什么问题..?
动态 JavaScript 将是脚本文件在发送到客户端之前由服务器处理以根据 cookie 等插入值的位置。这有时用于将一些初始数据传递给客户端。
所以脚本文件的内容可能是这样的:
sessionId = "<%= getSessionId() %>";
$http.get("home/GetInfo?sessionId="+sessionId, function(response){
$scope.userName = response;
});
当请求它时,你会得到类似的东西:
sessionId = "d8e8fca2dc0f896fd7cb4cb0031ba249";
$http.get("home/GetInfo?sessionId="+sessionId, function(response){
$scope.userName = response;
});
每次请求脚本时,sessionId 文字都会不同,当检测到时表明使用了动态 JavaScript。
我正在尝试了解跨站点脚本包含。我已经阅读了 sebastian lekeis (click here for paper and slide and video link) 的论文并对此有了一些了解。这里检测动态 javascript 是方法的一部分,我在这里有些困惑。
动态javascript检测到底是什么意思。这里告知同一个脚本文件将被请求两次。一个有身份验证,另一个没有。但我的困惑是,如果我请求假设 script.js
文件两次,它会有什么不同。服务器将始终发送具有相同代码行的文件。不是吗??
浏览器获取脚本文件后会执行该文件,完成后可能会有所不同。
假设,
$http.get("home/GetInfo", function(response){
$scope.userName = response;
});
此处 $scope.userName
值可能不同,但脚本文件将保持不变。
我的理解有什么问题..?
动态 JavaScript 将是脚本文件在发送到客户端之前由服务器处理以根据 cookie 等插入值的位置。这有时用于将一些初始数据传递给客户端。
所以脚本文件的内容可能是这样的:
sessionId = "<%= getSessionId() %>";
$http.get("home/GetInfo?sessionId="+sessionId, function(response){
$scope.userName = response;
});
当请求它时,你会得到类似的东西:
sessionId = "d8e8fca2dc0f896fd7cb4cb0031ba249";
$http.get("home/GetInfo?sessionId="+sessionId, function(response){
$scope.userName = response;
});
每次请求脚本时,sessionId 文字都会不同,当检测到时表明使用了动态 JavaScript。