天天看点

安全

1.视频教程:

B站、网易云课堂、腾讯课堂

2.代码地址:

Gitee

Github

3.存储地址:

Google云

百度云:

提取码:

1.CSRF攻击介绍和原理分析

2.攻击案例-ICBC项目结构搭建

3.攻击案例-ICBC网站登录、注册、转账功能实现

4.攻击案例-装饰器和中间件优化ICBC网站

5.攻击案例-病毒网站实现隐藏转账

6.攻击案例-CSRF防御原理和解决方案

7.Ajax处理CSRF防御

8.XSS攻击原理.

9.XSS攻击防御-普通字符串处理

10.XSS攻击防御-富文本字符串处理

11.点击劫持攻击实现和防御措施

12.SQL注入的实现和防御措施

CSRF攻击概述:

CSRF(Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,它在 2007 年曾被列为互联网 20 大安全隐患之一。其他安全隐患,比如 SQL 脚本注入,跨站域脚本攻击等在近年来已经逐渐为众人熟知,很多网站也都针对他们进行了防御。然而,对于大多数人来说,CSRF却依然是一个陌生的概念。即便是大名鼎鼎的 Gmail, 在 2007 年底也存在着 CSRF 漏洞,从而被黑客攻击而使 Gmail 的用户造成巨大的损失。

CSRF攻击原理:

网站是通过 cookie 来实现登录功能的。而 cookie 只要存在浏览器中,那么浏览器在访问这个 cookie 的服务器的时候,就会自动的携带 cookie 信息到服务器上去。那么这时候就存在一个漏洞了,如果你访问了一个别有用心或病毒网站,这个网站可以在网页源代码中插入js代码,使用js代码给其他服务器发送请求(比如ICBC的转账请求)。那么因为在发送请求的时候,浏览器会自动的把 cookie 发送给对应的服务器,这时候相应的服务器(比如ICBC网站),就不知道这个请求是伪造的,就被欺骗过去了。从而达到在用户不知情的情况下,给某个服务器发送了一个请求(比如转账)。

防御CSRF攻击:

CSRF攻击的要点就是在向服务器发送请求的时候,相应的 cookie 会自动的发送给对应的服务器。造成服务器不知道这个请求是用户发起的还是伪造的。这时候,我们可以在用户每次访问有表单的页面的时候,在网页源代码中加一个随机的字符串叫做csrf_token ,在 cookie 中也加入一个相同值的 csrf_token 字符串。以后给服务器发送请求的时候,必须在 body 中以及 cookie 中都携带 csrf_token ,服务器只有检测到 cookie 中的 csrf_token 和 body 中的 csrf_token 都相同,才认为这个请求是正常的,否则就是伪造的。那么黑客就没办法伪造请求了。在 Django 中,如果想要防御 CSRF 攻击,应该做两步工作。第一个是在 settings.MIDDLEWARE 中添加 CsrfMiddleware 中间件。第二个是在模版代码中添加一个 input 标签,加载 csrf_token 。示

例代码如下:

XSS攻击

XSS(Cross Site Script)攻击又叫做跨站脚本攻击。他的原理是用户在使用具有 XSS 漏洞的网站的时候,向这个网站提交一些恶意的代码,当用户在访问这个网站的某个页面的时候,这个恶意的代码就会被执行,从而来破坏网页的结构,获取用户的隐私信息等。

XSS攻击场景:

比如 A网站 有一个发布帖子的入口,如果用户在提交数据的时候,提交了一段 js 代码比如: <code>&lt;script&gt;alert("hello world");&lt;/script&gt;</code> ,然后 A网站 在渲染这个帖子的时候,直接把这个代码渲染了,那么这个代码就会执行,会在浏览器的窗口中弹出一个模态对话框来显示 helloworld !如果攻击者能成功的运行以上这么一段 js 代码,那他能做的事情就有很多很多了!

SQL注入

所谓SQL注入,就是通过把SQL命令插入到表单中或页面请求的查询字符串中,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意的)SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。 比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的。