七、网站的安全架构-固若金汤1
XSS攻击XSS攻击即跨站点脚本攻击(CrossSiteScript),指黑客通过篡改网页,注入恶意HTML脚本,在用户访问网页时,控制用户浏览器进行恶意操作的一种攻击方式
常见的XSS攻击类型有两种,一种是反射型,攻击者诱使用户点击一个嵌入恶意脚本的链接,达到攻击的目的(盗取用户Cookie、密码来伪造交易、盗窃用户财产等)
另一种XSS攻击是持久型XSS攻击,黑客提交含有恶意脚本的请求,保存在被攻击的Web站点的数据库中,用户浏览网页时,恶意脚本被包含在正常页面中,达到攻击的目的
(1)消毒对某些html字符转义,如“>”转义为“>”等
(2)HttpOnly即浏览器禁止页面JavaScript访问带有HttpOnly属性的Cookie
可通过对Cookie添加HttpOnly属性,避免被攻击者利用Cookie获取用户信息
注入攻击注入攻击主要有两种形式,SQL注入攻击和OS注入攻击
SQL注入攻击的原理如下图所示
攻击者在HTTP请求中注入恶意的SQL命令,服务器用请求构造数据库SQL命令时,恶意SQL被一起构造,并在数据库中运行
攻击者获取数据库表结构信息的手段有如下几种:(1)开源,如果网站采用开源软件搭建,那么网站数据库就是公开的;(2)错误回显,如果网站开启了错误回显,即服务器内部500错误会显示到浏览器上,攻击者可以通过故意构造非法数据,使服务器异常信息输出到浏览器端,为攻击猜测数据库表结构提供了便利;(3)盲注,攻击者根据页面变化情况判断SQL语句的执行情况来猜测数据库表结构;除了SQL注入,攻击者还根据具体应用,注入OS命令、编程语言代码等达到攻击目的
防御措施:(1)消毒和防XSS攻击一样,过滤请求数据中可能注入的SQL,如"droptable"等
另外还可以利用参数绑定来防止SQL注入
(2)参数绑定使用参数绑