网络攻击之sql注入 xss攻击 CSRF ddos攻击
一.sql 注入
描述:就是将sql语句通过web表单提交或页面请求,达到欺骗服务器执行恶意sql命令,攻击数据库的行为。
类型:sql注入分为平台型注入和代码层注入
平台型注入的原因是数据库配置不安全和数据库平台漏洞造成的
代码层注入是因为coder未对输入的数据进行细致的过滤,而执行了非法的sql命令
防御措施:对于平台型注入:不要用管理员权限做数据库连接,为每个应用使用单独的权限做数据库连接
对于代码层注入:不要相信任何用户的输入:要对输入信息做校验,做长度限制等。
不要做动态拼接sql语句:可以使用参数化的sql语句或存储过程进行数据查询存储
不要直接存放敏感信息:对敏感信息进行加密或做hash 处理等
二.xss攻击
描述:xss(cross-site-scripting) 即为跨站脚本攻击,是服务器对客户端的输入检测不严格,导致客户端的输入的恶意jiavascript嵌入到html代码中,当其他用户打开浏览器访问时,
这些js代码会自动执行而达到攻击目的。
防御措施:不要相信任何用户输入,对用户的信息进行处理,只保留合法的数据,其他都过滤掉
三.CSRF攻击
描述:csrf(cross-site request forgery)即跨站点请求伪造,攻击者盗用了合法用户的身份,以合法者的身份发送恶意请求。因为身份合法,这个请求在服务器端被看作是合理的,如以合法者的身份发送邮件,盗取账号,购买商品等
CSRF攻击攻击原理及过程如下:
1. 用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A;
2.在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A;
3. 用户未退出网站A之前,在同一浏览器中,打开一个TAB页访问网站B;
4. 网站B接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方站点A;
5. 浏览器在接收到这些攻击性代码后,根据网站B的请求,在用户不知情的情况下携带Cookie信息,向网站A发出请求。网站A并不知道该请求其实是由B发起的,所以会根据用户C的Cookie信息以C的权限处理该请求,导致来自网站B的恶意代码被执行。
防御措施:
目前防御 CSRF 攻击主要有三种策略:验证 HTTP Referer 字段;在 HTTP 头中自定义属性并验证。
验证HTTP Referer字段:HTTP referer 记录了http请求的来源地址。由于当用户通过黑客的网站发送请求到银行时,该请求的 Referer 是指向黑客自己的网站,所以可以验证referer 的源地址是否为合法的,如果是其他网站的请求,则拒绝请求。
弊端是:referer是由浏览器提供的,如果浏览器不安全,由于浏览器漏洞导致referer被篡改,也可能会造成csrf攻击
在HTTP头中添加自定义属性并验证:要抵御 CSRF,关键在于在请求中放入黑客所不能伪造的信息,并且该信息不存在于 cookie 之中。可以在 HTTP 请求中以参数的形式加入一个随机产生的 token,并在服务器端建立一个拦截器来验证这个 token,如果请求中没有 token 或者 token 内容不正确,则认为可能是 CSRF 攻击而拒绝该请求。这里并不是把 token 以参数的形式置于 HTTP 请求之中,而是把它放到 HTTP 头中自定义的属性里。
四.ddos攻击
描述:ddos(Distributed Denial of Service)即分布式服务拒绝。一般来说是指攻击者利用“肉鸡”对目标网站在较短的时间内发起大量请求,大规模消耗目标网站的主机资源,让它无法正常服务。
防御措施:
1. 高防服务器:主要是指能独立硬防御 50Gbps 以上的服务器,能够帮助网站拒绝服务攻击,定期扫描网络主节点等,这东西是不错,就是贵
2.黑名单:设置黑名单,此方法秉承的就是“错杀一千,也不放一百”的原则,会封锁正常流量,影响到正常业务。
3..ddos清洗:会对用户请求数据进行实时监控,及时发现DOS攻击等异常流量,在不影响正常业务开展的情况下清洗掉这些异常流量。
浙公网安备 33010602011771号