GreenBrowser 论坛


 
标题: [发现]ViewPage在某些网页无法运行的可能原因
wolfcm
大学四年级
Rank: 9Rank: 9Rank: 9


GreenBrowser专家   论坛热心贡献奖  
UID 122
精华 18
积分 2336
帖子 1136
阅读权限 200
注册 2006-12-25
状态 离线
发表于 2007-12-11 10:32  资料 短消息 
[发现]ViewPage在某些网页无法运行的可能原因

[发现]ViewPage在某些网页无法运行的可能原因

比如百度贴吧:http://post.baidu.com/f?kw=%C2%FC%C1%AA
无法运行ViewPage,只能打开一个空白页。如果允许弹出脚本错误提示框的话,会出现提示:“错误:拒绝访问”。
出错的行应该是“w.document.write(page);”

研究了蛮久终于发现,百度贴吧的网页源码中有一行:document.domain="baidu.com";
Proxomitron过滤该行之后,就可以正常运行ViewPage。
应该就是把网页所在的域被人为地修改之后,变成了跨域,所以影响了脚本插件的运行。

尝试在ViewPage中重新定义:document.domain="post.baidu.com";也不成功。
感觉好像document.domain只要一赋值就没法运行ViewPage了。

各位高人都来研究研究啊。其实不止ViewPage,还有EasyRead等类似的插件都是这样受影响的。

[ 本帖最后由 331700374 于 2008-7-29 15:46 编辑 ]




顶部
ssyknuwyg
大学二年级
Rank: 9Rank: 9Rank: 9



UID 114
精华 1
积分 1494
帖子 1244
阅读权限 200
注册 2006-12-24
状态 离线
发表于 2007-12-11 13:18  资料 短消息 
新开窗口的都不行,GETPAGESIZE是原地打开的,可以
顶部
lforl
大学四年级
Rank: 9Rank: 9Rank: 9


GreenBrowser专家   论坛热心贡献奖  
UID 15
精华 28
积分 5006
帖子 945
阅读权限 200
注册 2006-12-21
来自 SH
状态 离线
发表于 2008-7-26 01:58  资料 短消息  QQ
不小心查到以下信息,供大家一起研究!
---------------------
(注:Cross-Frame ,意思是指引用不同的域(domain)上的内容的框架,暂且译为“交叉框架”。)
通过运用 DHTML 的对象模型,不同窗口和框架里的内容可以通过脚本互相作用。但是,由于同一个浏览器可以同时在不同的浏览窗口或框架中显示不同的页面,为了保持数据的完整和信息的安全,就必须建立一种强制性的规则。
本文讲述在 DHTML 对象模型中这些规则是如何应用的,以及为何必须应用这些规则。在窗口间,对话框间,frameset、frame、iframe间,所有的关于交互作用的脚本写作的规则都是相同的。
在多数情况下,只有同一个域内的页面才能交互作用。比如,一个位于 http://www.microsoft.com/ 域中的页面可以自由地通过脚本影响 http://www.microsoft.com/ 域中的其他页面,但却不能作用于其他网域中的页面。
DHTML对象模型用 document.domain 属性来强制约束:只有拥有相同 domain 属性的页面能够自由地相互作用。(包括URL协议也必须相同,比如HTTP页面不可以与HTTPS的内容交互作用。)
当网页作者指定 document.domain 属性为域名的后半部分时,读写许可将可以扩展至二级域名(second-level domain )。例如:http://www.microsoft.com/ 上的一个页面可以把 document.domain 属性由初始的“www.microsoft.com”改为“microsoft.com”,就可以读写 http://home.microsoft.com 上的页面,或者以 microsoft.com 结尾的所有其他域中的页面,只要那些页面的 document.domain 属性值也设置为 microsoft.com 。因为只有名字以 microsoft.com 结尾的站点上的文档才能设置其 document.domain 属性为 microsoft.com ,所以确保了只有同一个服务提供者的页面才能互相提供权限并交互操作。document.domain 属性值不能比二级域名更短(比如“com”),因为这样会使权限超越于单一的服务提供者。比如:一个国际域名 http://www.microsoft.co.jp/ ,最大的操作权限是二级域名"microsoft.co.jp"(而不是"co.jp")。
由于让窗口或框架在任何的不同的域的 URl 间跳转很重要,这类操作总是被允许的。只有试图读写内容才会受到限制。例如:window.location 可以用来设置地址间的跳转,但是不能用它来读取在不同域上的地址。因为这会使一个页面知道浏览者去过哪些地方,而这会暴露浏览者的隐私。在不同的域间的页面应用的制约包括:
window.location  可以设置,但不能读取。
其他location对象  不可读写。
document.href  可以设置,但不能读取。
其他document属性  不可读写。
<iframe>  src  可以设置,但不能读取。
试图对对象模型中没有权限的那部分进行操作的脚本会遇到一个 "permission denied" 错误,并中断。
当域的安全问题会阻止了某些内容的交互时,很重要地,请理解这些限制对于确保安全是必要的。比如:没有域的安全,一个无赖网页可以“偷窥”别人浏览的页面,或通过DHTML来更改别人页面的内容。(比如:编写一个脚本,把所有插入iframe中的页面改换背景色,版权文字,以及放入一些自制的 banner,就可以把别人的整个站点变成“自己的”了。)

以上编译自 msdn
------------------------------




要支持作者MQ,请每天访问一次(作者可得5分钱),设置为主页或F1一键通:
http://www.2345.com/?30810
顶部
lforl
大学四年级
Rank: 9Rank: 9Rank: 9


GreenBrowser专家   论坛热心贡献奖  
UID 15
精华 28
积分 5006
帖子 945
阅读权限 200
注册 2006-12-21
来自 SH
状态 离线
发表于 2008-7-26 01:58  资料 短消息  QQ
对应英文版:
Cross-Frame Scripting and Security


With Dynamic HTML, content in different windows and frames can interact in powerful ways by scripting with the object model. However, since it is possible for a browser to simultaneously display unrelated documents in its various windows and frames, certain rules must be enforced to protect data integrity and privacy of information.

This section describes how and why these restrictions apply in the DHTML object model. All rules about script interaction apply equally to windows, dialog boxes, FRAMESETs, FRAMEs, and IFRAMEs.

For most content, only interactions with content from the same domain are allowed. For example, a typical page on http://www.microsoft.com/ can freely script content on any other page on http://www.microsoft.com/ but cannot script to pages that are located on a different Web domain. The DHTML object model uses the document.domain property to enforce this restriction: only pages with identical domain properties are allowed free interaction. The protocol of the URL must also match. For instance, an HTTP page cannot access HTTPS content.

The range of permissible access for a page can be expanded when a script assigns the document.domain property to a suffix of the site name space, up to the second-level domain. For example, a page on http://www.microsoft.com/ can assign the document.domain property—initially "www.microsoft.com"—to be "microsoft.com" to broaden access to include pages in http://home.microsoft.com or any other site, as long as the other pages also set the document.domain property to the identical value. Since only pages from a site whose name ends with "microsoft.com" will permit this domain to be set, it is assured that content from the same provider mutually agrees to interact and is free to do so. Domain suffixes shorter than the second-level domain (such as just "com") are disallowed because they expose beyond a single provider. For international site names such as http://www.microsoft.co.jp/, the second-level domain for widest access would be "microsoft.co.jp" (not "co.jp").

Since it is important to be able to navigate windows or frames to any URL beyond the domain restriction, these types of accesses are always permitted. Only access that attempts to read-out or modify content is restricted. For instance, the window.location might be assigned to cause navigation to occur, but this property cannot be read if the URL is of a different domain. This would allow one page to learn where the user has been browsing, and to allow this is a breach of the user's privacy. Some restrictions that apply to pages of different domains include:
window.location  Property can be set to navigate, but cannot read.  
Other location  Functionality is blocked.  
document.href  Property can be set to navigate but cannot read.  
Other document  Functionality is blocked.  
<IFRAME>  src property can be set to navigate but cannot read


Scripts that attempt to access parts of the object model to which they do not have access will be blocked with a "permission denied" error.

While domain security can prevent certain types of content interaction, it is important to understand that this restriction is necessary to ensure security. For example, without domain security, a rogue page could "snoop" on other pages or, using DHTML, manipulate its content.




要支持作者MQ,请每天访问一次(作者可得5分钱),设置为主页或F1一键通:
http://www.2345.com/?30810
顶部
lforl
大学四年级
Rank: 9Rank: 9Rank: 9


GreenBrowser专家   论坛热心贡献奖  
UID 15
精华 28
积分 5006
帖子 945
阅读权限 200
注册 2006-12-21
来自 SH
状态 离线
发表于 2008-7-26 02:01  资料 短消息  QQ
据此,据说指定相同的域,可以解决脚本在某些网页无法运行的问题。
<script>
document.domain="aaa.com"
</script>
我觉得:在原网页写入ViewPage的分析结果,并将原网页body隐去,可能是个好办法...




要支持作者MQ,请每天访问一次(作者可得5分钱),设置为主页或F1一键通:
http://www.2345.com/?30810
顶部
Philipho
大学四年级
Rank: 9Rank: 9Rank: 9



UID 1065
精华 7
积分 1830
帖子 824
阅读权限 200
注册 2007-1-15
状态 离线
发表于 2008-7-26 07:56  资料 短消息 
同样的百度贴吧http://post.baidu.com/f?kw=%C2%FC%C1%AA,viewpage在MT2里可以直接运行,什么原因?我都还没destroy domain。
顶部
zdyk
初中三年级
Rank: 7Rank: 7Rank: 7



UID 348
精华 1
积分 468
帖子 149
阅读权限 100
注册 2006-12-27
状态 离线
发表于 2008-7-26 14:57  资料 短消息 
可以把MT2反汇编一下看看是用什么原理避免这一点的吗……

其实这一句很难过滤,主要是所在的script还有显示验证码的功能。不知道能不能通过添加css去掉这一行呢?
顶部
zdyk
初中三年级
Rank: 7Rank: 7Rank: 7



UID 348
精华 1
积分 468
帖子 149
阅读权限 100
注册 2006-12-27
状态 离线
发表于 2008-7-26 15:18  资料 短消息 
用Ad Muncher的文本替换功能也成功了!
具体我更新在http://www.5igb.com/bbs/viewthread.php?tid=10697
顶部
332211
大学四年级
Rank: 9Rank: 9Rank: 9


UID 82
精华 0
积分 3120
帖子 1648
阅读权限 200
注册 2006-12-23
状态 离线
发表于 2008-7-26 16:03  资料 短消息 
嗯,这个我还没有觉得有啥实际意义。现在有些网页上的下载链接都是链接的广告一类,尽“逗你玩”,而真实的链接却深藏不露,我就想能不能用这网页分析,看看能不能找出真实的下载地址,可实际上,我是一次也没有如愿以偿哟!不知大伙对付这种漫天的广告链接而隐藏真实的下载地址的,有没有好的方法?
顶部
Passerby
大学四年级
Rank: 9Rank: 9Rank: 9
Moderator


GreenBrowser专家   论坛热心贡献奖  
UID 26
精华 11
积分 8320
帖子 7285
阅读权限 200
注册 2006-12-22
来自 China
状态 离线
发表于 2008-7-26 22:57  资料 主页 短消息 
楼上,重复发帖不会使你的观点或者求助更有说服力,更何况你的跟贴内容与帖子的原主题不符

P.S. 这是lforl挖的坟?在新网页里写document.domain是不可行的,因为你根本就写不了新网页,window.open之后的所有写操作都被禁止了。而直接在原网页做分析的坏处是你的网页元素会受到原网页的CSS的影响,而在新网页就不会。




"Are you hot?"
"17 charisma."
顶部
 


当前时区 GMT+8, 现在时间是 2020-7-13 05:54
苏ICP备07001345号

    本论坛支付平台由支付宝提供
携手打造安全诚信的交易社区 Powered by Discuz! 5.0.0  © 2001-2006 Comsenz Inc.
Processed in 0.071721 second(s), 7 queries

清除 Cookies - 联系我们 - 5iGB.com - Archiver