动易SiteFactory新特性体验之旅——全面提高的安全性
以下是引用片段: 全面提高的安全性 动易CMS 2007保留了动易CMS 2006成熟的安全防范措施,并且借助Asp.Net的特性和功能对各种攻击方式进行全方位的防范。 根据OWASP组织发布的2007年Web应用程序脆弱性10大排名统计,跨站脚本、注入漏洞、跨站请求伪造、信息泄露等几方面仍然是目前流行的攻击方式。动易CMS 2007针对每种攻击方式都制定了一套完整的防御方案,可以有效的抵制恶意用户对网站进行的攻击,提高网站的安全性 |
关于动易CMS2007的安全性,我们已经在/Blog/kuaibao/3050.html这篇文章中概述性讲过了。
写这篇小文章的时分,开发建设的团队将动易CMS 2007上用到的安全管理水平和方式方法做出了一段时间工作小结。后面 说是许多人写出来的一组防止保护明细:以下是引用片段: 1、密码保护: ●用户密码的MD5加密 ●利用密码强度限制,排除存在弱密码的可能性 ●后台登录启用验证码防止利用工具穷举破解密码 ●后台登录启用管理认证码(保存在.config文件中)加强密码保护的强度 2、输入验证: ●利用验证控件,对用户输入的数据进行类型、大小、范围的验证 3、访问限制: ●后台管理目录可以通过网站信息配置进行修改来防止攻击 ●全站和管理后台的IP访问限定功能可以实现访问范围的最小化 ●后台管理文件对访问用户身份的统一验证 ●从整体上限制直接输入地址或通过外部链接访问后台文件 4、注入漏洞攻击防范: ●使用类型安全的SQL参数化查询方式,从根本上解决SQL注入的问题 ●对于不能使用参数化查询的部分(比如in、like语句),使用严格的过滤函数进行过滤 ●限定URL的传递参数类型、数量、范围等来防止通过构造URL进行恶意攻击 5、跨站脚本攻击防范: ●对于不支持HTML标记的内容使用HTMLEncode进行编码 ●对于支持HTML标记的内容使用脚本过滤函数来过滤绝大部分可运行的脚本代码,作为防范的辅助措施 ●通过frame的安全属性security="restricted"来阻止脚本的运行(IE有效) ●使用Cookie的HttpOnly属性来防止Cookie通过脚本泄密(IE6 SP1以上、Firefox 3) 6、跨站请求伪造防范: ●禁止通过地址栏直接访问或者通过外部链接访问后台管理页面 ●通过设置ViewStateUserKey属性防止受到恶意用户的点击式攻击(对应Post方式) ●通过对链接追加安全验证码(HMACSHA1)防止跨站请求伪造(对应Get方式) 7、信息泄露防范: ●网站的配置信息保存在Site.config文件中,.config文件是默认拒绝访问的文件类型,以避免配置信息泄密; ●利用web.config中配置的自定义错误页和全局的异常处理,屏蔽异常出现时暴露的敏感信息; ●对数据库连接字符串进行加密,在配置信息泄密后保护数据库连接的敏感信息; 8、上传下载防范: ●Access数据库防下载功能 ●对上传文件类型进行检查,并删除黑名单中列出类型的文件 ●对上传文件的实际类型进行检查 9、其他措施: ●跟踪用户操作异常和系统异常,并详细记录到日志中,以便于分析 ●对程序集进行强命名,以防止非法篡改程序集 ●对程序集进行加密和混淆,避免恶意用户通过反射程序集利用代码漏洞进行攻击 ●在线文件比较功能检查网站中可能存在的木马程序 ●管理员最后修改密码日期 ●………… |
以下是引用片段: 1、密码保护: ●用户密码的MD5加密 ●利用密码强度限制,排除存在弱密码的可能性 ●后台登录启用验证码防止利用工具穷举破解密码 ●后台登录启用管理认证码(保存在.config文件中)加强密码保护的强度 |
以下是引用片段: 2、输入验证: ●利用验证控件,对用户输入的数据进行类型、大小、范围的验证 |
以下是引用片段: 3、访问限制: ●后台管理目录可以通过网站信息配置进行修改来防止攻击 ●全站和管理后台的IP访问限定功能可以实现访问范围的最小化 ●后台管理文件对访问用户身份的统一验证 ●从整体上限制直接输入地址或通过外部链接访问后台文件 |
关于HttpModule的相关知识和概念,大家可以在网上搜索一下。我这里稍微解释一下。当其中一个HTTP請求发往HttpModule时,一个ASP.NET Framework系统化还并不会有对你这个HTTP标准做很多加工处理,也那其实同时相对HTTP要求讲讲,HttpModule就是一个HTTPpost请求的“必经之途”,所有可以在这种HTTP标准推送到真正意义的标准处里中心站(HttpHandler)过后叠加其他需用的数据信息在该HTTP需求问题表层,亦或是争对拦截的这一个HTTP明确提出个人信息作那些附加的做工作,并且在某类问题下直截中断需求那些因素的HTTP需求,是可以是可以达到的Filter过滤软件系统装置器的影响。动易CMS2007利用ASP.NET的哪一特征参数,在HttpModule里对去提交给业务器的的数据做出了严格执行过滤软件系统装置,从综合次数制直接的录入地止或经由外链下载链接互访网页程序,因此在过大数量上怎强了软件系统的防护性。
以下是引用片段: 4、注入漏洞攻击防范:
●使用类型安全的SQL参数化查询方式,从根本上解决SQL注入的问题 ●对于不能使用参数化查询的部分(比如in、like语句),使用严格的过滤函数进行过滤 ●限定URL的传递参数类型、数量、范围等来防止通过构造URL进行恶意攻击 |
这样的方式,如果一不小心没有对要放入SQL查询语句中的Country变量进行防SQL注入过滤,就有可能产生注入问题。这方面的教程实在太多,大家有兴趣可以到网上搜索一下。而由此带来的教训则是非常深刻。动易之前发现的一些注入漏洞问题,都是因为程序员不小心没有过滤有关变量造成的。而纵观网上许多程序,还有许多地方是根本就没有将提交过来的值进行过滤就放入查询语句中。如:
Sql = "SELECT Boardid, Boardtype, Boarduser FROM Board WHERE Boardid = " & Request("boardid")
Set Rs = Execute(Sql)
这样的程序的安全性可想而知。
以下是代码片段: /// /// 更新作者 /// /// 作者实体 /// 更新成功返回true,否则返回false public bool Update(AuthorInfo authorInfo) { Parameters parms = new Parameters(); parms.AddInParameter("@ID", DbType.Int32, authorInfo.Id); parms.AddInParameter("@UserId", DbType.Int32, authorInfo.UserId); parms.AddInParameter("@Name", DbType.String, authorInfo.Name); parms.AddInParameter("@Type", DbType.String, authorInfo.Type); ……………… return DBHelper.ExecuteProc("PE_Accessories_Author_Update", parms); } 注:这里的代码与实际程序有所区别。 |
以下是引用片段: 5、跨站脚本攻击(XSS)防范: ●对于不支持HTML标记的内容使用HTMLEncode进行编码 ●对于支持HTML标记的内容使用脚本过滤函数来过滤绝大部分可运行的脚本代码,作为防范的辅助措施 ●通过frame的安全属性security="restricted"来阻止脚本的运行(IE有效) ●使用Cookie的HttpOnly属性来防止Cookie通过脚本泄密(IE6 SP1以上、Firefox 3) |
根据OWASP组织发布的2007年Web应用程序脆弱性10大排名统计,跨站脚本、注入漏洞、跨站请求伪造、信息泄露等几方面仍然是目前流行的攻击方式。其中,跨站脚本攻击已经超过了SQL注入漏洞攻击,位列首位。因为XSS最难处理,限制得过死,正常功能也将无法使用,稍微一松,就有可能因为过滤不严而产生漏洞。而XSS的攻击方式之多,可能会超乎大家的想像。我发个网址给大家,有兴趣的人可以上去看看:
动易的按键精灵按键精灵脚本净化方程对应据此网页中的主动攻击力速度原则计划好几个套完整性的谨防控制解决方案,可很好的谨防控制XSS主动攻击力速度。再结合巧用据此举例子的各种类型谨防控制的具体措施,可大残留量的谨防控制跨站按键精灵按键精灵脚本主动攻击力速度。
以下是引用片段: 6、跨站请求伪造(CSRF)防范:
●禁止通过地址栏直接访问或者通过外部链接访问后台管理页面 ●通过设置ViewStateUserKey属性防止受到恶意用户的点击式攻击(对应Post方式) ●通过对链接追加安全验证码(HMACSHA1)防止跨站请求伪造(对应Get方式) |
什么是跨站请求伪造?大家可以看看这篇文章:
动易经由给出防护工作,可最主要幅度的对这一种去攻击的方法实行防护。
用户登录
还没有账号?
立即注册