监控外部网站的HTTP请求

时间:2012-06-20 17:25:45

标签: javascript ajax cross-domain http-request http-monitor

我想根据网站上发生的事情编写一个脚本生成器,为此我编写了javascript - 基于ajax的脚本生成器,在每个页面上我都包含js文件,并在页面的功能块中submited我调用javascript的函数来启动getElementsByTagName(*)读取页面变量(DOM),在循环之后,我使用ajax将预定义的格式写入文件。

这一切都是针对其运行的同一站点完成的,但现在我需要为任何其他站点实现相同的记录器和脚本生成器,如同在网站上完成并登录到文件,我都不能包含我的脚本放到任何其他外部网站上,也不提交函数调用,然后提交读取dom并扔进文件。

这里是js的虚拟代码

 beginRecording();

function beginRecording()
{
    if(RECORD_BIT == 1)
    { 
       processPageData();   
    }
}

function processPageData()
{
  var i
  var obj = document
  var posArray = new Array();
  var allElement = obj.getElementsByTagName("*");
  var dataArrayString = "";

  for(i=0; i < allElement.length; i++)
  {
    if (allElement[i].getAttribute('id') != null && allElement[i].getAttribute('id') != "") 
    {
        posArray[posArray.length] = allElement[i].getAttribute('id');
    }
 }

 for(i = 0 ; i < posArray.length ; i++)
 {
    dataArrayString = dataArrayString+"SET  "+posArray[i]+"="+getValueFromPage(posArray[i]);
 }



  writePostData(dataArrayString);

}

函数writePostData,通过记录DOM元素上的内容,在服务器上执行ajax和写入/更新文件,并发送更多详细信息,包括GET / POST或页面名称等等。

在javascript执行提交为document.forms [0] .submit()之前在页面上调用beginRecording(),以便它可以捕获POST。

我读过关于跨域的ajax,但我仍然不确定如何监控任何外部网站的HTTP(读取GET / POST和页面或URL上的数据)而不将我的脚本添加到该文件中,并写入文件< / p>

任何帮助或方向都会很棒。

1 个答案:

答案 0 :(得分:1)

你不能在远程站点上包含javascript,或者监视它的HTTP请求这两件事对安全性来说都是灾难性的......