课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,越来越多的企业和个人用户都开始关注网络安全问题,而今天我们就通过案例分析来了解一下,互联网常见网络攻击方法与防御手段。
XSS攻击
XSS攻击防御手段
消毒:XSS攻击者一般都是通过在请求中嵌入恶意脚本达到攻击目的,这些脚本是一般用户输入中不使用的,如果进行过滤和消毒处理,即对某些HTML危险字符转义,就可以防止大部分攻击。为了避免对不必要的内容错误转义,需要进行文本匹配后再转义事实上,消毒几乎是所有网站必备的XSS防攻击手段。
SQL注入攻击
获取数据库表结构信息的手段
开源:如果网站采用开源软件搭建,那么网站数据库结构就是公开的,攻击者可以直接获得。
错误回显:如果网站开启错误回显,攻击者故意构造非法参数,服务端异常信息会输出到浏览器端,为攻击猜测数据库表结构提供了便利。
盲注:网站关闭错误回显,攻击者根据页面变化情况判断SQL语句的执行情况,据此猜测数据库表结构,此种方式攻击难度较大。
注入攻击防御手段
消毒:和防XSS攻击一样,请求参数消毒是一种比较简单粗暴又有效的手段。通过正则匹配,过滤请求数据中可能注入的SQL文。
SQL预编译参数绑定:使用预编译手段,绑定参数是好的防SQL注入方法。目前许多数据访问层框架,如myBatis,Hibernate等,都实现SQL预编译和参数绑定,攻击者的恶意SQL会被当做SQL的参数,而不是SQL命令被执行。
CSRF攻击
CSRF攻击防御手段
表单Token:CSRF是一个伪造用户请求的操作,所以需要构造用户请求的所有参数才可以。表单Token就是阻止攻击者获得所有请求参数的可能,在页面表单中增加一个随机数Token,每次请求的Token都不相同,请求提交后检查Token的值是否正确以确定请求提交者是否合法。
验证码:相对说来,验证码则更加简单有效,即请求提交时,需要用户输入验证码,以避免在用户不知情的情况下被攻击者伪造请求。但是输入验证码是一个糟糕的用户体验,所以必要的时候才使用,如支付交易等关键页面。
Referercheck:HTTP请求头的referer域中记录着请求来源,可通过检查请求来源,验证其是否合法。但是该方法有一定局限性,referer也并不一定总能得到。
其他需要关注的攻击和漏洞
ErrorCode:也称作错误回显,许多Web服务器默认是打开异常信息输出的,即服务器端未处理的异常堆栈信息会直接输出到客户端浏览器,这种方式虽然对程序调试和错误报告有好处,但同时也给黑客造成可乘之机。通过故意制造非法输入,使系统运行时出错,获得异常信息,从而寻找系统漏洞进行攻击。防御手段也很简单,通过配置Web服务器参数,跳转500页面(HTTP响应码500表示服务器内部错误)到专门的错误页面即可,这个功能Web应用常用的MVC框架也可以做到。
HTML注释:为了程序调试方便或其他不恰当的原因,有的时候程序开发人员会在PHP、JSP等服务器页面程序中使用HTML注释语法进行程序注释,这些HTML注释就会显示在客户端浏览器,给黑客造成攻击便利。程序终发布前需要进行代码review或自动扫描,避免HTML注释漏洞。
文件上传:一般网站都会有文件上传功能,设置头像、分享视频、上传附件等。如果上传的是可执行的程序,并通过该程序获得服务器端命令执行能力,那么攻击者几乎可以在服务器上为所欲为,并以此为跳板攻击集群环境的其他机器。有效的防御手段是设置上传文件白名单,只允许上传可靠的文件类型。此外还可以修改文件名、使用专门的存储等手段,保护服务器免受上传文件攻击。
路径遍历:攻击者在请求的URL中使用相对路径,遍历系统未开放的目录和文件。防御方法主要是将JavaScript、CSS等资源文件独立服务器、独立域名,其他文件不使用静态URL访问,动态参数不包含文件路径信息。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请在707945861群中学习了解。