浏览器脚本扩展external.myfunc()调用的安全性问题

codenail 2004-09-14 11:10:02
我做了个web helper,并且扩展了浏览器,也就是在网页中可以用window.external.myfunc();调用扩展的方法或者属性。
现在的问题是在本地页面测试可以,如果同样的页面来自外部网站则总是“为空或者对象不存在”,在浏览器里修改安全性控制后就可以了,并且,把浏览器安全性恢复后仍然可以。
不知道那位高人有什么办法?
有关的文章和例子很多,但是都没有讲到安全性的问题。如果不能访问网站上的页面,这样的扩展有什么实用价值呢?

这个问题在MFC7中的CDHtmlDialog::IsExternalDispatchSafe有关。

...全文
106 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
蒋晟 2004-10-13
  • 打赏
  • 举报
回复
这个是自己做的……在调用external之前调用
codenail 2004-10-11
  • 打赏
  • 举报
回复
我有仔细看了蒋晟翻译的文章http://dev.csdn.net/Develop/article/21/21702.shtm
这篇文章说例子是MFC6下面的,但是由于编译中碰到一些问题没有通过,修改了最后还是缺少StrSafe.h。
文章中的BOOL CIEAutomationView::CanAccessExternal()我没有明白这个方法的是来自那个接口的实现还是自己做的,也没有明白什么时候它被什么调用。应用没有编译过,所以也没法跟踪。
请蒋晟帮忙解释一下,并说明如果才能编译通过。
nwpulipeng 2004-10-02
  • 打赏
  • 举报
回复
帮顶混分啦
蒋晟 2004-09-30
  • 打赏
  • 举报
回复
CDHtmlDialog::IsExternalDispatchSafe似乎不是BHO而是Host WebBrowser,MFC里面的实现也不知道是否在IE里面同样存在

替换IE的安全设置似乎只能在Host WebBrowser的时候做(要是BHO可以改IE的安全管理器那就天下大乱了)
Mr-Chen 2004-09-30
  • 打赏
  • 举报
回复
你用它的控件实际还是调用IE浏览器的
所以你需要在程序里设置安全属性
thp 2004-09-15
  • 打赏
  • 举报
回复

2,586

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 资源
社区管理员
  • 资源
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧