2012-06-20 104 views
0

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

这一切都是为它运行的同一个站点完成的,但现在当我需要为任何其他站点实现相同的记录器和脚本生成器时,就如同在网站上做了什么并登录到文件一样,我也不能包括我的脚本到任何其他外部网站,也没有提交函数调用之前提交阅读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哑代码,做AJAX和写入/更新登录什么DOM元素在服务器上的文件,我送情侣的更多细节liek GET/POST或页面名称等。

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

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

任何帮助或方向将是伟大的。

+1

听起来像是你应该写一个浏览器插件,而不是一个网页。 – epascarello

+0

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

回答

1

您不能在远程站点上的JavaScript,或监视它的HTTP请求,这两点都将是灾难性安全...

+0

感谢您的回复,我知道我无法将脚本注入到其他网站,但是由于Firefox甚至无法捕获POST数据,并且我可以在net-> html->下看到firebug,并在post标签下展开post请求。 如果我严格使用firebug监控,我可以捕获POST数据或POST/GET请求什么是由萤火虫记录? –

+0

你必须建立一个firefox扩展来做到这一点,这些信息不可用于一般网站 - 用户必须选择安装你的建议。你究竟想在这里完成什么?也许我们可以提出一个更好的方法来获得你想要的结果。 –

+0

感谢您的回复,我们有一个响应监控工具,它可以反复监控预定义的操作集并监控响应时间并生成图表,以便在整天内演示操作需要多长时间并为其报表生成图形,但是这个脚本告诉你该做什么,比如设置username = x password = y并且在这个IP上发布http,目前需要手动编写,为此你需要知道输入参数,它们的id和value用户想要反复测试,但是为了生成该脚本容易出错,所以我们希望在导航站点时使用记录器 –