前两周网络安全编程基础课讲的主要是绪论。

我们这门课程的主要内容是:
1.TCP/IP网络知识
2.Socket编程
3.web编程
4.web安全

其中,Socket编程和Web编程是重点

先来一些零碎的基础知识点,是我记的老师第一周课程内容:

计算机网络三要素:外围设施、有独立功能的计算机、网络协议
TCP/IP四层结构:应用、传输、网络、链路
OSI七层结构:应用 表示 会话 传输 网络 数据链路 物理
打包从上往下,解包从下往上
ARP地址解析协议,DNS域名解析协议
网络层产生IP地址,ARP使IP地址编程MAC(硬件地址)地址,DNS把IP地址映射到域名。
地址解析流程:ARP请求——ARP响应
IP数据最重要的两个参数: 源IP地址&目的IP地址

路由器——网络层
交换机和网卡驱动——链路层
集线器和网卡——物理层

路由器最核心的就是路由表,主要有两个功能,1.路由选择 2.寻址
TCP是全双工的,通过三次握手建立链接,四次握手结束链接
UDP是无序的,无连接的,一般处理音视频都用UDP,因为不需要非常准确

接下来是老师第二周讲的内容:

因为上节课有的同学没来,所以我们再简单复习一下上节课知识

我们这门课程要学的知识有四个方面:
1.计算机网络知识
2.Socket编程
3.Web编程(不会出大题,全是基础题)
4.Web安全
其中计算机网络的知识考试占比例不超过百分之二十,Socket编程和Web编程二者加起来的成绩占百分之五十以上,Web安全内容不超过百分之十五。

关于第二和第三点,Socket编程和Web编程,

我们最后有一个大实验,就是要编出前端——后台——和数据库这样一个服务器,很重要
我们说你登录淘宝的时候,得输入用户名和密码,你输入的这个界面就是Web server,密码保存的时候用的是hash函数加密,用户名保存的是字符型。
如果提示没有这个名字,你就需要注册一个,然后淘宝把用户名和密码保存在DB Server数据库里
然后二者在应用Server进行比对,如果你输入的和淘宝保存的一样,就允许你登录。

Web Server——前端
App Server——后台
DB Server——数据库

关于第四个方面,Web安全,

这个部分和大家下学期刘宇栋老师讲的(某课)有些雷同,
针对网站的攻击主要有三种:
1.SQL注入攻击
2.XSS跨站脚本攻击
3.缓冲区溢出攻击

针对SQL注入攻击,举个例子:

有个指令是select(查询),输入select * from student,可以查询学生表,输入select name from student就可以查名字,输入where studentname ='20155305' and password='abcd'就可以查询数据库中的磊哥的用户名和密码,输入这三条指令就可以从数据库中取出磊哥的姓名和密码,这时有人从前端输入了磊哥的信息,就会拿出来比对。

然后实施SQL攻击的攻击者输入用户名:20155305' OR 1=1 - -
其中“ ‘ ”将磊哥的用户名定义成了字符型,“1=1”永真式,如果再“或”一下就可以使用任意用户名登录,再用“- -”注释将后面的“and password ='abcd'”变为注释信息,就可以跳过密码输入,直接登入网站。

针对SQL注入攻击,再举一个例子:

SQL还有三个指令:
insert 增
delete 删
update 改
某网站网址为:http://www.#@\(%\)#%\(@#\)%&%.cn/?id=49 ,攻击者在“id=49”后面加入“ ’ ”,就可以使网站崩溃了。

接下来绪论部分就结束了,开始正式讲解计算机网络(即第一部分)的知识:TCP/IP协议族

TCP/IP协议族有很多内容,有ipv4互联网协议、ARP地址解析协议、ICMPInternet控制报文协议、TCP传输控制协议、UDP用户数据包协议、FTP文件传输协议等等!

首先先讲IP协议

IP地址常用的是三类,ABC类,

网络编程 aandroid 网络编程课_IP


主机标识段全部为1的是广播地址,全为0的是存储网络地址,

回环地址127.0.0.1,检验本机网卡是否连通,127开头的都是本机内发出,本机内接收,不会通过网卡发出去。

例题:

网络编程 aandroid 网络编程课_IP_02

用户的数据通过四层包装,应用层——运输层——网络层——网络接口层,再通过物理传输传到另外一个网络接口,然后再逐层解包,传到另一个用户手中,但是网络接口层之间的传送是通过物理链路层传输的,