数据链路层
1、数据链路层常见协议?
协议 |
名称 |
作用 |
ARP |
地址解析协议 |
根据IP地址获取物理地址 |
RARP |
反向地址转换协议 |
根据物理地址获取IP地址 |
PPP |
点对点协议 |
主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共通的解决方案 |
2、MAC地址、IP地址以及ARP协议?
- MAC地址是以太网的MAC子层所使用的地址;
- IP地址是TCP/IP体系结构网际层所使用的地址;
- ARP协议属于TCP/IP体系结构的网际层,其作用是已知设备所分配到的IP地址,使用ARP协议可以通过该IP地址获取到设备的MAC地址;
3、MAC地址是什么?为什么需要MAC地址?
- 当多个主机连接在同一个广播信道上,要想实现两个主机之间的通信,则每个主机都必须有一个唯一的标识,即一个数据链路层地址;
- 在每个主机发送的帧中必须携带标识发送主机和接收主机的地址,由于这类地址是用于媒体接入控制MAC(Media Access Control),因此这类地址被称为MAC地址;
- MAC地址一般被固化在网卡(网络适配器)中,因此MAC地址也被称为硬件地址;
4、为什么既有IP地址,又有MAC 地址?
- IP地址是因特网(Internet)上的主机和路由器所使用的地址,用于标识两部分信息:
网络编号:标识因特网上数以百万计的网络
主机编号:标识同一网络上不同主机(或路由器)
- 很显然,MAC地址不具备区分不同网络的功能。
- 如果只是一个单独的网络,不接入因特网,可以只使用MAC地址(这不是一般用户的应用方式)。如果主机所在的网络要接入因特网,则IP地址和MAC地址都需要使用。
- 数据包转发过程中lP地址与MAC地址的变化情况:
源lP地址和目的IP地址保持不变;
源MAC地址和目的MAC地址逐个链路(或逐个网络)改变。
5、ARP具体工作过程?
如何从IP地址找出其对应的MAC地址? 通过ARP地址解析协议
流程:
- 源主机在自己的ARP高速缓存表中查找目的主机的IP地址所对应的MAC地址,若找到了,则可以封装MAC帧进行发送;若找不到,则发送ARP请求(封装在广播MAC帧中);
- 网络中所有主机收到这个ARP请求之后,会检查数据包中的目的IP是否和自己的IP地址一致,如果不一致就忽略此数据包 ;
- 目的主机收到ARP请求后,将源主机的IP地址与MAC地址记录到自己的ARP高速缓存表中,然后给源主机发送ARP响应(封装在单播MAC帧中),ARP响应中包含有目的主机的IP地址和MAC地址;
- 源主机收到ARP响应后,将目的主机的IP地址与MAC地址记录到自己的ARP高速缓存表中,然后就可以封装之前想发送的MAC帧并发送给目的主机;
ARP的作用范围: 逐段链路或逐个网络使用;
ARP表中的IP地址与MAC地址的对应关系记录,是会定期自动删除的,因为IP地址与MAC地址的对应关系不是永久性的。
6、路由器和交换机的区别?
- 工作层次不同
- 交换机主要工作在数据链路层(实现数据帧的转发),路由器工作在网络层(肩负着网络互连的作用 )。
- 数据的转发对象不同
- 交换机是根据MAC地址转发数据帧,而路由器是根据IP地址来转发数据报。
- IP地址决定最终数据要到达某一台主机,而MAC地址是决定下一跳将要交给哪一台设备(一般是交换机或者路由器)
- 主要功能不同:
- 交换机主要用于组建局域网,而路由主要功能是将由交换机组好的局域网相互连接起来,或者接入Internet。
- 交换机不能分割广播域,路由可以。
- 路由还可以提供防火墙的功能, 交换机不能提供该功能。
安全
1、有哪些安全攻击?
网络安全攻击主要分为两种类型,被动攻击和主动攻击:
- 被动攻击:是指攻击者从网络上窃听他人的通信内容,通常把这类攻击称为截获,被动攻击主要有两种形式:消息内容泄露攻击和流量分析攻击。由于攻击者没有修改数据,使得这种攻击很难被检测到。
- 主动攻击:直接对现有的数据和服务造成影响,常见的主动攻击类型有:
- 篡改:攻击者故意篡改网络上送的报文,甚至把完全伪造的报文传送给接收方。
- 恶意程序:恶意程序种类繁多,包括计算机病毒、计算机蠕虫、特洛伊木马、后门入侵、流氓软件等等。
- 拒绝服务Dos:攻击者向服务器不停地发送分组,使服务器无法提供正常服务。
2、DNS劫持了解吗?
DNS劫持即域名劫持,是通过将原域名对应的IP地址进行替换,从而使用户访问到错误的网站,或者使用户无法正常访问网站的一种攻击方式。
怎么应对DNS劫持?
- 直接通过IP地址访问网站,避开DNS劫持
- 由于域名劫持往往只能在特定的网络范围内进行,因此一些高级用户可以通过网络设置让DNS指向正常的域名服务器以实现对目标网址的正常访问,例如计算机首选DNS服务器的地址固定为8.8.8.8。
3、什么是 CSRF 攻击?如何避免?
CSRF 攻击:
CSRF,跨站请求伪造(英文全称是 Cross-site request forgery),是一种挟持用户在当前已登录的 Web 应用程序上执行非本意的操作的攻击方法。
例子:
- 用户登陆银行,没有退出,浏览器包含了用户在银行的身份认证信息。
- 攻击者将伪造的转账请求,包含在帖子中。
- 用户在银行网站保持登陆的情况下,浏览帖子。
- 将伪造的转账请求连同身份认证信息,发送到银行网站。
- 银行网站看到身份认证信息,以为就是用户的合法操作,最后造成用户资金损失。
如何解决?
- 检查 Referer 字段:HTTP头中的Referer字段记录了该 HTTP 请求的来源地址。在通常情况下,访问一个安全受限页面的请求来自于同一个网站,而如果黑客要对其实施 CSRF攻击,他一般只能在他自己的网站构造请求。因此,可以通过验证Referer值来防御CSRF 攻击。
- 添加校验 token:在 HTTP 请求中以参数的形式加入一个随机产生的 token,并在服务器端建立一个拦截器来验证这个 token,如果请求中没有token或者 token 内容不正确,则认为可能是 CSRF 攻击而拒绝该请求。
- 敏感操作多重校验:对一些敏感的操作,除了需要校验用户的认证信息,还可以通过邮箱确认、验证码确认这样的方式多重校验。
4、什么是 DoS、DDoS、DRDoS 攻击?
- DoS: (Denial of Service), 翻译过来就是拒绝服务, 一切能引起拒绝行为的攻击都被称为 DoS 攻击。最常见的 DoS 攻击就有计算机网络宽带攻击、连通性攻击。
- DDoS: (Distributed Denial of Service),翻译过来是分布式拒绝服务。是指处于不同位置的多个攻击者同时向一个或几个目标发动攻击,或者一个攻击者控制了位于不同位置的多台机器,并利用这些机器对受害者同时实施攻击。主要形式有流量攻击和资源耗尽攻击,常见的 DDoS攻击有:SYN Flood、Ping of Death、ACK Flood、UDP Flood 等。
- DRDoS: (Distributed Reflection Denial of Service),中文是分布式反射拒绝服务,该方式靠的是发送大量带有被害者 IP 地址的数据包攻击主机,然后攻击主机对 IP 地址源做出大量回应,从而形成拒绝服务攻击。
如何防范DDoS?
- 减少SYN timeout时间:在握手的第三步,服务器会等待30秒-120秒的时间,减少这个等待时间就能释放更多的资源。
- 限制同时打开的SYN半连接数目。
5、 什么是XSS攻击?如何避免?
XSS也称 cross-site scripting,跨站脚本攻击。这种攻击是由于服务器将攻击者存储的数据原原本本地显示给其他用户所致的。比如一个存在XSS漏洞的论坛,用户发帖时就可以引入带有<script>标签的代码,导致恶意代码的执行。
预防措施有:
- 对输入进行过滤,过滤标签等,只允许合法值。
- 对于链接跳转,如<a href="xxx" >等,要校验内容,禁止以 script 开头的非法链接。
- 限制输入长度
6、什么是SQL注入?如何防止?
SQL 注入就是在用户输入的字符串中加入 SQL 语句,如果在设计不良的程序中忽略了检查,那么这些注入进去的 SQL 语句就会被数据库服务器误认为是正常的 SQL 语句而运行,攻击者就可以执行计划外的命令或访问未被授权的数据。
如何防止?
- 检查变量数据类型和格式
- 在SQL语句执行前,应该严格按照固定格式去检查,确保变量是我们预想的格式,这样很大程度上可以避免SQL注入攻击
- 过滤特殊符号
- 对于无法确定固定格式的变量,一定要进行特殊符号过滤或转义处理。
- 绑定变量,使用预编译语句
- 实际上,绑定变量使用预编译语句是预防SQL注入的最佳方式,使用预编译的SQL语句语义不会发生改变,在SQL语句中,变量用问号?表示,黑客即使本事再大,也无法改变SQL语句的结构。