互联网产品的安全架构设计
网站攻击与防护
2011年6月28日,许多微博用户发现自己“中毒”,自动关注一个叫hellosamy的用户,并发布含有病毒的微博,粉丝点击后微博再度扩散,短时间内大量用户中招,数小时后新浪微博修复漏洞。
2011年12月,网上有人发布消息称CSDN网站600万用户资料和密码被泄露,很快该消息得到CSDN官方承认,紧接着,天涯社区,人人网等多个重要网站被报告泄露用户数据。
XSS攻击
XSS攻击防御手段
消毒:XSS攻击者一般都是通过在请求中嵌入恶意脚本达到攻击目的,这些脚本是一般用户输入中不使用的,如果进行过滤和消毒处理,即对某些html危险字符转义,如“>”转义为“>”、“<”转义为“<”等,就可以防止大部分攻击。为了避免对不必要的内容错误转义,如“3<5”中的“<”,需要进行文本匹配后再转义,如“<img src=”这样的上下文中“<”才转义。事实上,消毒几乎是所有网站最必备的XSS防攻击手段。
HttpOnly:最早由微软提出,即浏览器禁止页面Javascript访问带有HttpOnly属性的Cookie。HttpOnly并不是直接对抗XSS攻击的,而是防止XSS攻击者窃取Cookie。对于存放敏感信息的Cookie,如用户认证信息等,可通过对该Cookie添加HttpOnly属性,避免被攻击脚本窃取。
注入攻击
获取数据库表结构信息的手段
开源:如果网站采用开源软件搭建,如用Discuz!搭建论坛网站,那么网站数据库结构就是公开的,攻击者可以直接获得。
错误回显:如果网站开启错误回显,攻击者故意构造非法参数,服务端异常信息会输出到浏览器端,为攻击猜测数据库表结构提供了便利。
盲注:网站关闭错误回显,攻击者根据页面变化情况判断SQL语句的执行情况,据此猜测数据库表结构,此种方式攻击难度较大。
注入攻击防御手段
消毒:和防XSS攻击一样,请求参数消毒是一种比较简单粗暴又有效的手段。通过正则匹配,过滤请求数据中可能注入的SQL文,如“drop table”、“\b(?:update\b.*?\bset|delete\b\W*?\bfrom)\b”等。
参数绑定:使用预编译手段,绑定参数是最好的防SQL注入方法。目前许多数据访问层框架,如ibatis,hibernate等,都实现SQL预编译和参数绑定,攻击者的恶意SQL会被当做SQL的参数,而不是SQL命令被执行。
对称加密-火龙果软件 来自淘豆网m.daumloan.com转载请标明出处.