网站应用攻击与防御
一. XSS攻击:跨站点脚本攻击,黑客通过篡改网页,注入恶意HTML脚本,在用户浏览网页时,控制用户浏览器进行恶意操作的一种攻击方式。
-
反射性:攻击者诱使用户点击一个嵌入恶意脚本的链接,达到攻击的目的
image.png - 持久性XSS攻击:黑客提交含有恶意脚本请求保存在被攻击web站点的数据库中,用户浏览网页时,恶意脚本被包含在正常页面中,达到攻击目的
image.png
可以通过HttpOnly(禁止js访问带有HttpOnly属性的cookie)和消毒(对某些html危险字符穿衣,“>”转义为“lt”)来防止XSS攻击
二. 注入攻击
image.png
消毒:过滤掉可能注入的SQL,如“drop table”等
参数绑定:利用Hibernate等框架实现SQL预编译和参数绑定,使得攻击者的恶意SQL被当做SQL参数,而不是SQL命令被执行
三. CSRF攻击(跨站点请求伪造)
image.png
表单Token:在页面表单中增加一个随机数作为Token,从正常页面提交的请求会包含该Token,而伪造的请求无法获得该值,服务器进行验证
验证码:提交请求时要求用户输入验证码
Referer Check:Referer域中记录请求来源,通过检查请求来源验证是否合法
四. 其他攻击和漏洞
Error Code:错误回显,许多Web服务器默认打开异常信息输出,黑客可以通过制造非法输入,使系统运行出错,获得异常信息。可以通过配置Web服务器参数,跳转500页面到专门的错误页面即可。
HTML注释:开发人员在页面中的HTML注释可能会被黑客利用。程序发布前对代码进行review或者自动扫描,避免HTML注释漏洞。
文件上传:上传的可能是可执行文件,并通过该程序获得服务端命令执行能力。防御手段是设置上传文件白名单,只允许上传可靠的文件类型。
遍历路径:攻击者在请求的URL中使用相对路径,遍历系统未开放的目录和文件。防御方法是将JS、CSS等资源文件部署在独立服务器,使用独立域名。
五. 防火墙
六. 网站安全漏洞扫描
信息加密技术及密钥安全管理
-
单向散列加密(只能对输入进行散列计算,不能由输出得到输入,常见的有MD5,SHA等)
image.png
使用该方法可以对用户密码进行加密,每次验证加密后的结果与数据库中的是否匹配
image.png -
对称加密(算法简单,加密解密效率高,开销小,常见的有DES算法、RC算法)
image.png -
非对称加密(公私钥配对,常用在信息安全传输,数字签名等场合,常用的有RSA算法等)
image.png -
密钥安全管理:
将密钥和算法放在一个独立的服务器上,对外提供加密和解密服务,应用系统调用服务(成本高,而且可能成为应用的瓶颈,因为每次加密解密都要进行一次远程服务调用);
将加密算法放在应用系统中,密钥放在独立服务器中,为了提高密钥的安全性,实际存储时将密钥切分成数片,加密后存在不同存储介质中。
image.png
信息过滤与反垃圾
-
文本匹配:主要解决敏感词过滤问题(维护敏感词列表),一般使用字典树进行匹配(以及双数组字典树),或者使用多级Hash表进行文本匹配。但有时某些输入信息会被做一些手脚,比如“傻_X”,那么还要对信息做降噪预处理。
image.png -
分类算法(贝叶斯算法)
image.png - 黑名单(Hash表或者布隆过滤器)
网友评论