【问题标题】:monitor HTTP requests of external website监控外部网站的HTTP请求
【发布时间】:2012-06-20 17:25:45
【问题描述】:

我想根据网站上发生的事情编写脚本生成器,为此我编写了基于 javascript - ajax 的脚本生成器,在每个页面上我都包含 js 文件和页面所在页面的功能块提交后我调用了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 或页面名称等。

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

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

任何帮助或指导都会很棒。

【问题讨论】:

  • 听起来你应该写一个浏览器插件而不是一个网页。
  • 嗨 Epascarello,感谢您的建议,我能够使用能够捕获获取和发布的 crossrider 创建浏览器插件,并且在使用 activex 的 IE 上,我能够将捕获写入文件。在 yahoo 和其他平台上测试,只需将它们添加到受信任的站点,这是可以接受的。但是,如果页面有框架集,比如页眉/正文/页脚,并且页脚正在对正文执行一些操作,我无法在框架集中捕获框架的帖子?我可以使用javascript捕获它吗,我尝试使用 self.frames.count 然后 parent.frames[index].document.location.href ,但仍然无法捕获它。

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


【解决方案1】:

您不能在远程站点上包含 javascript,或者监控它的 HTTP 请求,这两件事都会对安全造成灾难性影响...

【讨论】:

  • 感谢您的回复,我知道我无法将脚本注入其他网站,但是由于 firefox 确实捕获了 POST 数据,我可以在 firebug 上看到它,在 net -> html -> 下并展开发布请求,然后在发布选项卡下。如果我严格使用 firefox 和 firebug 进行监控,我可以捕获 POST 数据或 POST / GET 请求 firebug 记录的内容吗?
  • 您必须构建一个 Firefox 扩展来做到这一点,该信息不适用于一般网站 - 用户必须选择安装您建议的内容。你到底想在这里实现什么?也许我们可以建议一种更好的方法来获得您想要的结果。
  • 感谢回复,我们有一个响应监控工具,它可以重复监控预定义的动作集并监控响应时间,并生成图表来展示一整天的动作花费了多长时间,并产生其报告的图表,但是告诉该做什么的脚本,例如设置用户名=x 密码=y 并在此 IP 上通过 http 发布,目前需要手动编写,为此您需要知道哪些输入参数,它们的 id和值用户想要重复测试,但生成该脚本很容易出错,所以我们在导航站点时需要一个记录器
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-15
相关资源
最近更新 更多