Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4138126
  • 博文数量: 447
  • 博客积分: 1241
  • 博客等级: 中尉
  • 技术积分: 5786
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-27 06:48
个人简介

读好书,交益友

文章分类

全部博文(447)

文章存档

2023年(6)

2022年(29)

2021年(49)

2020年(16)

2019年(15)

2018年(23)

2017年(67)

2016年(42)

2015年(51)

2014年(57)

2013年(52)

2012年(35)

2011年(5)

分类: 网络与安全

2012-11-15 17:49:35

IE8做的越来越安全,IE8支持站点的activex控件,activex只会被当前特定站点默认加载,从而避免被恶意站点使用。
ATL SiteLock模板和“Per-Site ActiveX”能够混合使用显式和隐式方法,将ActiveX控件绑定到一个或多个域。通过限制ActiveX控件的运行位置和上下文,开发人员和用户可以将改变控件用途的风险降至最低。
ATL SiteLock是一种显式机制,用于限制哪些域和哪些范围可以加载一个给定Activex控件。希望使用这一约束条件的控件开发人员可以将SiteLock模板应用到自己基于ATL的ActiveX控件。这些ActiveX控件没有实现IObjectSafety,而是实现IObjectSafetySiteLockImpl;这个界面是从IObjectSaftey派生而来的,使开发人员能够声明一个许可域(或区域)的列表,以在运行时进行检查。
SiteLock是防止ActiveX重用攻击的最可靠机制,在这种攻击方式中,恶意网站尝试滥用为在另一网站中使用而设计的控件。如果一个网站尝试加载SiteLock不允许的控件,将会防止该对象的实例化。不会出现信息栏或重载。
由于SiteLock机制需要控件开发人员付出一些努力,所以采用这一机制的控件数目有些不尽如人意。为此,微软在IE 8中添加了一个新功能,用于提供SiteLock的一些好处。“Per-Site ActiveX”功能使用户能够决定允许在哪些域中运行一个控件。默认情况下,通过浏览器安装的控件只能在安装该控件的站点上运行。当另一个网站要实例化一个已安装控件时,会向用户显示信息栏,询问是否允许在当前域或所有域中运行控件。
这个域列表可以通过“管理加载项”用户界面或通过“组策略”进行管理
现在sitelock安装包
#include "../Include/sitelock.h"
在前面定义
#define SITELOCK_USE_IOLEOBJECT
 
#define SITELOCK_NO_EXPIRY
控件类的继承
public IObjectWithSiteImpl,
 public IObjectSafetySiteLockImpl,
添加
COM_INTERFACE_ENTRY(IObjectSafetySiteLock)
COM_INTERFACE_ENTRY(IObjectWithSite)
头文件添加
public:
 
 static const SiteList rgslTrustedSites[6];
cpp文件添加
const CVPNAgent::SiteList CVPNAgent::rgslTrustedSites[6] ={
{ SiteList::Allow, L"http",  L"*"       },
{ SiteList::Allow, L"http",  SITELOCK_INTRANET_ZONE },
{ SiteList::Allow, L"https", L"*"       },
{ SiteList::Allow, L"https", SITELOCK_INTRANET_ZONE }};
 
阅读(5819) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~