网络安全-常见攻击手段及预防方法

【SQL注入】 含义:Sql 注入攻击是通过将恶意的 Sql 查询或添加语句插入到应用的输入参数中,再在后台 Sql 服务器上解析执行进行的攻击:猜解数据库、验证绕过 例子:用户名中输入 123’ or 1=1 #, 密码同样输入 123’ or 1=1 # 执行语句:select * from users where username=‘123’ or 1=1 #’ and password=‘123’ or 1=1 #’ 避免方法: 1、普通用户加权限:不给普通终端用户数据库对象的建立、删除等权限 2、使用参数化语句:用户输入的变量不是直接嵌入到SQL语句。而是通过参数来传递这个变量 3、输入过滤:拒绝包含引号、注释等字符的输入内容

【XSS攻击】 含义:跨站脚本(Cross-site scripting),利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。攻击成功后,攻击者可能得到更高的权限(如执行一些操作)、cookie等各种内容 分类: 1、反射型(非持久型)XSS:需要用户点url 2、存储型(持久型)XSS:黑客提前将带有XSS的恶意脚本写入目标服务器数据库 具体见图:未贴 预防方法: 1、加http-only:HttpOnly是包含在http返回头Set-Cookie里面的一个附加的flag。如果支持HttpOnly的浏览器检测到包含HttpOnly标志的cookie,并且客户端脚本代码尝试读取该cookie,则浏览器将返回一个空字符串作为结果。这会通过阻止恶意代码(通常是XSS)将数据发送到攻击者的网站来使攻击失败。 2、前端渲染把代码和数据分隔开:前端渲染中,明确告诉浏览器:下面要设置的内容是文本,还是属性,还是样式等等。浏览器不会被轻易的被欺骗,执行预期外的代码了 3、输入过滤:拒绝或转义<、>之类的输入内容

【CSRF攻击】 含义:跨站请求伪造(Cross-site request forgery),攻击者盗用了用户的身份,以该用户的名义发送恶意请求 具体见图:未贴 预防方法:csrf_token,图未贴

【DDOS攻击】 含义:分布式拒绝服务攻击(Distributed Denial os Service) 分类: 1、网络层DDOS:首先伪造大量的源IP地址,分别向服务器端发送大量的SYN包,此时服务器端会返回SYN/ACK包,因为源地址时伪造的,所以伪造的IP并不会应答,服务器端没有收到伪造IP的回应,会重试3-5次并且等待一个SYN Time(一般为30秒至2分钟),如果超时则丢弃这个连接。攻击者大量发送这种伪造源地址的SYN请求,服务端将会消耗非常多的资源(CPU和内存)来处理这种半连接,同时还要不断地对这些IP进行SYN+ACK重试,最后的结果是服务器无暇理睬正常的连接请求,导致拒绝服务。 2、应用层DDOS:对一些资源消耗较大的应用页面不断发起正常的请求,以达到消耗服务端资源的目的,在Web应用中,查询数据库、读/写硬盘文件等操作,相对都会消耗比较多的资源 预防方法: 1、通过IP地址和Cookie定位一个客户端,如果客户端的请求在一定时间内过于频繁,则对之后来自该客户端的所有请求都重定向到一个出错页面 2、验证码

【命令注入/命令执行】 含义:命令执行漏洞就是黑客能够通过控制外部参数可以达到执行系统命令的效果。 例子:ping 127.0.0.1 | ls (a | b 直接执行命令b) 预防方法: 1.设计者尽可能少设计使用一些命令执行函数, 2.若有必要使用,那么必须对特殊函数做过滤,对用户输入的命令做检查,对客户端提交的变量在进入执行命令前做好过滤和检查等

经验分享 程序员 微信小程序 职场和发展