前言
大型网站核心要素之前我们介绍了4个,今天讲讲这最后一个:安全性,从互联网诞生开始,安全威胁就一直伴随着网站的发展,各种web攻击和信息泄露也从未停止,那么我们今天就从下面这几点谈谈网站架构的安全性:网站应用与防御、信息加密及秘钥安全管理、信息过滤与反垃圾。
网站应用与防御
-
XSS攻击:站点脚本攻击,指黑客通过篡改网页,注入恶意HTML脚本,在用户浏览网页时,控制用户浏览器进行恶意操作的一种攻击方式;常见的XSS攻击类型主要有2种:反射型和持久型XSS攻击。
反射型:攻击者诱使用户点击一个嵌入恶意脚本的链接,达到攻击的目的
持久型XSS攻击:黑客提交含有恶意脚本的请求,保存在被攻击的web站点的数据库中,用户浏览网页时,恶意脚本被包含在正常页面中,达到攻击的目的,如下图所示:
XSS防攻击主要手段如下:
消毒:XSS攻击一般都是通过在请求中嵌入恶意脚本达到攻击的目的,这些脚本是一般用户输入中不使用的,如果进行过滤和消毒处理,即对某些HTML危险字符转义,如“>”转义为“>”、"<"转义成“<”等,就可以防止大部分攻击,为了避免对不必要的内容错误转义如“3<5”中的<需要进行文本匹配后再转义。事实上,消毒几乎是所有网站最必备的XSS防攻击手段;
HttpOnly:浏览器禁止页面js访问带有HttpOnly属性的cookie,HttpOnly并不是直接对抗XSS攻击而是防止XSS攻击者窃取cookie,对于存放敏感信息的cookie,可以通过对cookie添加HttpOnly属性,避免被攻击者脚本窃取;
-
注入攻击:注入攻击主要有2种形式,SQL注入和OS注入
SQL注入:攻击者在HTTP请求中注入恶意SQL命令,服务器用请求参数构造数据库SQL命令,恶意SQL被一起构造,并在数据库中执行,如下图: