一、了解网络安全
网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。
网络安全的四个级别:
脚本小子
可以熟练掌握黑客工具和程序的使用,可以使用工具却不了解原理。
网络安全工程师
可以面向市场上的网络安全岗位就业,但往后门槛会愈来愈高。
实验室研究员
精通至少一门领域,拥有出色的审计经验,还需要了解与脚本、POC、二进制相关的知识。
安全大咖级
精通某一领域知识点并有自己的了解建树。一个人能支撑APT某一职能的所有需求树。
网络安群涵盖的知识点:
浏览器、数据库、服务器;
由简到难的HTML、JavaScript和CSS、PHP、Java、.net;
CDN、代理、Web容器,静态页面、MVC,URL协议、HTTP协议以及页面加载和DOM渲染等等。
二、网络安全的学习路线
1、了解基本的网络和组网以及相关设备的使用;
2、学习系统原理,web功能系统还有Web前后端基础与服务器通信原理
3、前端代码、后端程序设计入门
入门的意思就是学习基本的html、js、asp、mssql、php、mysql等脚本类的语言,服务器是指:WinServer、Nginx、Apache等
4、学习主流的安全技能原理&利用
5、学习当下主流漏洞的原理和利用
即SQL、XSS、CSRF等主流漏洞的原理与利用学习
6、掌握漏洞挖掘思路,技巧
学习前人所挖0day(零日漏洞)的思路,复现,尝试相同审计,我们的课程学习社区里有许多分享贴可以供你学习。
7、进行实战训练
寻找像SQLI-LAB这样的带“体系化”的靶场去进行练习、实战。我们的平台也会给大家提供实战靶场。
能够静下心学习好上边的东西以后自己就会有发展和学习的方向了。这些都是基础东西,还没有涉及到系统内部结构、网络编程、漏洞研发等。
B. 网络安全好学吗
关于如何学习网络安全,网上有各种各样的说法,有说先掌握计算机基础原理;有说先学习各种编程语言;还有说先看看系统怎么操作的......
如今网安人才已经成为国家重视企业追捧的紧缺人才,不少小伙伴也投身到网络安全学习中,但是对于如何学习网络安全知识,说法和建议五花八门,让不少刚下定决心学习的小伙伴望而却步、晕头转向。
网络安全是技术更新迭代最快的行业之一,网安从业人才基本都需要很强的实战以及学习能力,在工作过程中要适时更新自己的知识库,不断充实自己。
对于零基础转行的初学者来说最难的问题是找到一个好的起点。尽管现在有很多书籍和视频资料会教你如何做“攻防实战”,但这些教材的通病就是内容编排脱离实际。
有些内容过于简单或过于复杂,缺少一些基础性的引导材料,导致一些零基础或者基础不好的同学会很难进入状态。
其实如何高效的学习网络安全知识,如何进行实战与理论的结合,都不是几篇技术文章或几个视频技能帮助你学好的。重要的是一整套完整的教学体系,并且理论与实践完美的结合。理论知识学完后我们去实践中查找问题、去复盘知识点,并清楚这些知识的底层原理。
蜗牛学苑邓强老师领衔研发的网络安全课程,基于蜗牛学苑在IT培训与研发领域的多年沉淀,采纳了合作企业的用人需求,配合技术与实战,构建了一套完整的网络安全攻防体系,培养从事安全运营、渗透测试、安全服务、安全测评、红蓝对抗方面的专门人才。
蜗牛学苑最新网络安全课程共四个阶段。
第一阶段:网络通信与协议安全;
第二阶段:系统应用与安全开发;
第三阶段:安全攻防与系统渗透;
第四阶段:安全防御与运营保障。
所以学习网络安全第一步便是选对课程和老师,好的课程体系不仅会让你少走很多弯路,更能让你学到企业所需人才的必备技术;好老师带路减少闭门造车的情况发生,遇到问题及时解决,不仅提高学习效率,更能拾得学习自信。
C. 前端数据安全有哪些预防方法
前端数据安全的预防方法包括:
1. 使用加密算法保护数据,防止数据泄露;
2. 实施严格的访问控制,防止未经授权的访问;
3. 对用户输入进行安全验证,如 XSS 攻击预防;
4. 加入双重认证机制,防止恶意攻击;
5. 及时更新系统,以防止漏洞被利用;
6. 配置防火墙,阻止未经授权的网络访问。
拓展:除了上述的常规预防措施之外,前端数据安全还需要借助一些专业的工具来进行管理,如安全审计系统、安全扫描工具等。另外,应该及时掌握最新的安全技术和行业动态,以便及时发现安全漏洞,并采取有效的措施防范。
D. 网络安全的属性有哪几种相关的主意实现技术分别是什么
一:学网络安全需要的知识:
1、必须精通TCP/IP协议族。
2、学习和了解各种OS 平台,如:linux,UNIX,BSD 等。
3、随时关注网络安全最新安全动态。
4、熟悉有关网络安全的硬软件配置方法。尤其交换机和路由的配置。
5、多泡网络安全论坛。
6、终身学习。
二:网络安全必修课程:(后面的教材仅为参考)
0、专业基础:
1)C/C++:【C++Primer中文版 还有题解c++ primer 需要一定的C++基础,如果要比较基本的话,钱能的那本不错,清华大学出版社的。 <<c programming languge>> 全球最经典的C语言教程 中文名字<<c程序设计语言>>】
2)汇编语言 asm
3)操作系统【linux,UNIX,BSD】UBUNTU是linux操作系统 鸟哥的linux私房菜】
4)计算机网络
1、系统编程:(Windows核心及网络编程)
1、精通VC/C++编程,熟悉windows网络SOCKET编程开发
1)《Windows网络编程(第二版)》(附光盘),(美)Anthony Jones, Jim Ohlund着;杨合庆译;清华大学出版社,2002.1
2)《Windows 核心编程(第四版)》(附光盘),(美)Jetfrey Richter着,王建华 等译;机械工业出版社,2006.9
2、逆向工程:
1)《加密与解密(第二版)》(附光盘),段钢 着,电子工业出版社;2004.5
E. 3大Web安全漏洞防御详解:XSS、CSRF、以及SQL注入解决方案
随着互联网的普及,网络安全变得越来越重要。Java等程序员需要掌握基本的web安全知识,防患于未然,下面列举一些常见的安全漏洞,以及对应的防御解决方案。
1.前端安全
2.后端安全
1.XSS简介
跨站脚本(cross site script)简称为XSS,是一种经常出现在web应用中的计算机安全漏洞,也是web中最主流的攻击方式。
XSS是指恶意攻击者利用网站没有对用户提交数据进行转义处理或者过滤不足的缺点,进而添加一些代码,嵌入到web页面中去,使别的用户访问都会执行相应的嵌入代码。
2.XSS攻击的危害
1、盗取用户资料,比如:登录帐号、网银帐号等
2、利用用户身份,读取、篡改、添加、删除企业敏感数据等
3、盗窃企业重要的具有商业价值的资料
4、非法转账
5、强制发送电子邮件
6、网站挂马
7、控制受害者机器向其它网站发起攻击
3.防止XSS解决方案
XSS的根源主要是没完全过滤客户端提交的数据 ,所以重点是要过滤用户提交的信息。
1.CSRF简介
CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。
XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF更具危险性。
2.CSRF攻击的危害
主要的危害来自于,攻击者盗用了用户身份,发送恶意请求。比如:模拟用户的行为发送邮件,发消息,以及支付、转账等财产安全。
3.防止CSRF的解决方案
1.简介
SQL注入是比较常见的网络攻击方式之一,主要是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,实现无帐号登录,甚至篡改数据库。
2.SQL注入的危害
3.防止SQL注入的方式
通常情况下,SQL注入的位置包括:
(1)表单提交,主要是POST请求,也包括GET请求;
(2)URL参数提交,主要为GET请求参数;
(3)Cookie参数提交;
(4)HTTP请求头部的一些可修改的值,比如Referer、User_Agent等;
4.简要举例
举一个简单的例子,select * from user where id=100 ,表示查询id为100的用户信息,如果id=100变为 id=100 or 2=2,sql将变为:select * from user where id=100 or 2=2,将把所有user表的信息查询出来,这就是典型的sql注入。
5.防止SQL注入的解决方案
1)对用户的输入进行校验,使用正则表达式过滤传入的参数
2)使用参数化语句,不要拼接sql,也可以使用安全的存储过程
3)不要使用管理员权限的数据库连接,为每个应用使用权限有限的数据库连接
4)检查数据存储类型
5)重要的信息一定要加密
总之就是既要做好过滤与编码并使用参数化语句,也要把重要的信息进行加密处理,这样sql注入漏洞才能更好的解决。
以上就是Web安全介绍,更多Redis系列、Spring Cloud、Dubbo等微服务、MySQL数据库分库分表等架构设计,具体请参考:
回复关键词 【高并发】即可获取!
F. Web安全问题解答
很多新手都觉得自己的电脑web经常被木马侵袭,所以下面我为大家带来电脑基础知识学习之Web安全问题,让你了解下如何安全的保护好自己的电脑。
1、什么叫Web应用系统?
答:Web应用系统就是利用各种动态Web技术开发的,基于B/S(浏览器/服务器)模式的事务处理系统。用户直接面对的是客户端浏览器,使用Web应用系统时,用户通过浏览器发出的请求,其之后的事务逻辑处理和数据的逻辑运算由服务器与数据库系统共同完成,对用户而言是完全透明的。运算后得到的结果再通过网络传输给浏览器,返回给用户。比如:ERP系统、CRM系统以及常见的网站系统(如电子政务网站、企业网站等)都是Web应用系统。
2、为什么Google把我的网站列为恶意网站
答:Google在对网站内容进行搜索时,同时也会检查是否含有恶意软件或代码(这些恶意软件或代码可能威胁该网站的访问者)。如果该网站存在这样的恶意软件或代码,就会在用户搜索到该网站时,加上一个标记:“该网站可能含有恶意软件,有可能会危害您的电脑”。这将会使网站信誉受损,并导致潜在的用户流失。
3、Web威胁为什么难以防范
答:针对Web的攻击已经成为全球安全领域最大的挑战,主要原因有如下两点:
1. 企业业务迅速更新,需要大量的Web应用快速上线。而由于资金、进度、意识等方面的影响,这些应用没有进行充分安全评估。
2. 针对Web的攻击会隐藏在大量正常的业务行为中,而且使用各种变形伪装手段,会导致传统的防火墙和基于特征的入侵防御系统无法发现和阻止这种攻击。
4、黑客为什么要篡改网站页面
答:当黑客获取网站的控制权限后,往往会更改网站页面,可能的动机有:
1. 宣称政治主张;
2. 炫耀技术,建立“声望”;
3. 宣泄情绪;
4. 经济利益,通过网站释放木马,从而获取经济利益。
5、黑客实施网站挂马的目的是什么
答:网站挂马的主要目的是控制访问该网站的用户的计算机,从而可以进一步获取用户的计算机隐私信息而获利,或者将这些用户的计算机作为“肉鸡”,对 其它 服务器或网络进行DDos攻击。
6、为什么我网站的数据库表内容被大量替换?
答:如果排除了管理员误操作的可能性,则可能是网站服务器被自动化攻击工具(如SQL注入工具等)攻击的结果。目前已经有自动化的工具对网站进行攻击,如果网站存在漏洞的话,攻击工具能够获得对网站数据库访问的权限。如果发现这种情况,应该仔细核查网站服务器和数据库服务器日志,找出更改记录。
7、在Web威胁防御中防火墙的优点和不足
答:防火墙可以过滤掉非业务端口的数据,防止非Web服务出现的漏洞,目前市场上可选择的防火墙品牌也较多。但对于目前大量出现在应用层面上的SQL注入和XSS漏洞,防火墙无法过滤,因而无法保护Web服务器所面临的应用层威胁。
8、常见发布系统之IIS
答:IIS 是Internet Information Server的缩写,是由微软开发的一种Web服务器(Web server)产品,用以支持HTTP、FTP和SMTP服务发布。 它主要运行在微软的 操作系统 之上,是最流行的Web服务器软件之一。
9、常见Web服务器之Apache
答:Apache是Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上。Apache源于NCSAhttpd服务器,经过多次修改,已成为世界上最流行的Web服务器软件之一。
10、Apache是不是比IIS要安全
答:早期的IIS在安全性方面存在着很大的问题,如果使用默认设置,黑客可以轻松趁虚而入。不过在IIS6中,微软公司对其安全方面进行了大幅改进。只要保证操作系统补丁更新及时,就可以将网站安全系数尽可能地提高。
Apache在安全方面一直做得比较好,更主要的原因是很多用户都是在linux系统下使用Apache。相对于微软的操作系统,Linux系统被发布的安全按漏洞更少一些。
从技术角度讲,两个Web服务器的安全性没有本质区别,一个完整的Web系统的安全性更取决于Web程序的安全性以及Web服务器配置的正确性。
11、什么叫应用防火墙
答:应用防火墙的概念在上个世纪九十年代就已经被提出,但在最近几年才真正走向成熟和应用。应用防火墙的概念与网络防火墙相对,网络防火墙关注网络层的访问控制,应用防火墙则关注应用层数据的过滤与控制。
12、什么叫网站防篡改系统
答:网站防篡改系统通过实时监控来保证Web系统的完整性,当监控到Web页面被异常修改后能够自动恢复页面。网站放篡改系统由于其设计理念的限制,对静态页面的防护能力比较好,对动态页面的防护则先天不足。
13、我的Web服务器被访问速度变慢,经常出现连接失败的现象,可能是什么原因造成的呢?
答:这可能有两个方面的情况,一种是网络方面的原因,如运营商的线路故障,或带宽消耗型的DDOS攻击;另外一种情况是服务器方面的原因,如感染病毒,或资源消耗型的拒绝服务攻击。
14、我的Web服务器部署了木马查杀软件,为什么还被挂了木马?
答:所谓的网页被挂马,很多情况下并不是有木马程序或代码被放到了Web服务器上,而是有一段跳转代码(本身不包含攻击信息)被放在了Web服务器上网页中。当远程用户访问带有跳转代码的页面时,将会执行这段代码,从另外一个地址下载并执行木马。所以,即使在Web服务器上部署了木马查杀软件,也会由于木马本身并不存在于服务器上,而无法避免网站被挂马。
15、我的Web服务器前端部署了入侵防御产品设备,入侵防御产品设备中包含了几百条的SQL注入攻击防御特征库,为什么我的Web系统还是被SQL注入攻击成功了呢?
答:SQL注入是一种没有固定特征的攻击行为,对安全设备来说,就是属于变种极多的攻击行为。所以,基于数据特征的SQL注入检测 方法 是没有办法穷尽所有组合的,会存在大量的误报、漏报可能。如果采用的入侵防御产品设备采用的是基于数据特征的检测方法,即使包含了数百条SQL注入特征库,也会有漏报出现。
16、黑客为什么喜欢攻击网站?
答:Web业务已经成为当前互联网最为流行的业务,大量的在线应用业务都依托于Web服务进行。并且一些大型网站的日访问量可达百万之巨,不论是直接攻击网站(如网络银行,在线游戏服务器)还是通过网站挂马窃取访问者信息,都可以使黑客获得直接的经济利益。另外一方面,网站是机构的网络形象,通过攻击篡改网站页面,也可以得到最大范围的名声传播。对于那些企图出名的黑客,攻击网站是一项不错的选择。
17、如何判断自己的Web服务器是否已经成为肉鸡?
答:如果发现自己的Web服务器上开启了一些奇怪的进程,发现Web服务器总是有大量从内往外的连接,发现Web服务器不定时系统缓慢,诸如此类的现象,可使用木马清除软件进行检查和查杀。
细分攻击形式:
18、目前国内Web应用系统存在哪些最突出的安全问题?
答:Web应用程序的漏洞是很难避免的,系统的安全隐患主要在三方面:
首先是网络运维人员或安全管理人员对Web系统的安全状况不清楚。哪些页面存在漏洞,哪些页面已经被挂马,他们不能够清晰的掌握,从而及时采取改正 措施 ;
其次,在安全设备的部署方面,没有选用专业的、针对Web业务攻击的防御产品对网站进行保护,而是寄托于防火墙这种访问控制类的网关安全设备;
另外,从安全响应来看,Web安全事件发生后的应急与处理也存在欠缺。没有相应的页面恢复系统,也没有处理Web安全事件的专业安全服务团队。很多单位没有制定实时监控的网站安全管理制度。
19、什么叫SQL注入
答:SQL注入就是利用现有应用程序,将恶意的SQL命令注入到网站后台数据库引擎执行的能力。SQL注入利用的是正常的HTTP服务端口,表面上看来和正常的Web访问没有区别,隐蔽性极强,不易被发现。
20、SQL注入有哪些危害
答:SQL注入的主要危害包括:
未经授权状况下操作数据库中的数据;
恶意篡改网页内容;
私自添加系统帐号或者是数据库使用者帐号;
网页挂木马;
21、什么叫XSS
答:跨站脚本攻击(XSS)是攻击者将恶意脚本提交到网站的网页中,使得原本安全的网页存在恶意脚本;或者是直接添加有恶意脚本的网页并诱使用户打开,用户访问网页后,恶意脚本就会将用户与网站的会话COOKIE及其它会话信息全部截留发送给攻击者,攻击者就可以利用用户的COOKIE正常访问网站。攻击者有时还会将这些恶意脚本以话题的方式提交到论坛中,诱使网站管理员打开这个话题,从而获得管理员权限,控制整个网站。跨站脚本漏洞主要是由于没有对所有用户的输入进行有效的验证所造成的,它影响所有的Web应用程序框架。
22、XSS有哪些危害
答:XSS攻击的危害包括:
盗取各类用户帐号,如机器登录帐号、用户网银帐号、各类管理员帐号;
控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力;
盗窃企业重要的具有商业价值的资料;
非法转账;
强制发送电子邮件;
网站挂马;
控制受害者机器向其它网站发起攻击。
23、什么叫Shellcode
答:Shellcode实际是一段代码(也可以是填充数据),可以用来发送到服务器,利用已存在的特定漏洞造成溢出,通称“缓冲区溢出攻击”中植入进程的代码。这段代码可以是导致常见的恶作剧目的的弹出一个消息框弹出,也可以用来删改重要文件、窃取数据、上传木马病毒并运行,甚至是出于破坏目的的格式化硬盘等等。
24、什么叫网站漏洞
答:随着B/S模式被广泛的应用,用这种模式编写Web应用程序的程序员也越来越多。但由于开发人员的水平和 经验 参差不齐,相当一部分的开发人员在编写代码的时候,没有对用户的输入数据或者是页面中所携带的信息(如Cookie)进行必要的合法性判断,导致了攻击者可以利用这个编程漏洞来入侵数据库或者攻击Web应用程序的使用者,由此获得一些重要的数据和利益。
25、什么叫木马
答:木马(Trojan)这个名字来源于古希腊 传说 ,在互联网时代它通常是指通过一段特定的程序(木马程序)来控制另一台计算机。木马通常有两个可执行程序:一个是客户端,即控制端,另一个是服务端,即被控制端。木马的设计者为了防止木马被发现,而采用多种手段隐藏木马。木马的服务一旦运行并被控制端连接,其控制端将享有服务端的大部分操作权限,例如给计算机增加口令,浏览、移动、复制、删除文件,修改注册表,更改计算机配置等。
26、什么叫网站挂马
答:“挂马” 就是黑客入侵了一些网站后,将自己编写的网页木马嵌入被黑网站的主页中。当访问者浏览被挂马页面时,自己的计算机将会被植入木马,黑客便可通过远程控制他们的计算机来实现不可告人的目的。网页木马就是将木马和网页结合在一起,打开网页的同时也会运行木马。最初的网页木马原理是利用IE浏览器的ActiveX控件,运行网页木马后会弹出一个控件下载提示,只有点击确认后才会运行其中的木马。这种网页木马在当时网络安全意识普遍不高的情况下还是有一点威胁的,但是其缺点显而易见,就是会出现ActiveX控件下载提示。现在很少会有人去点击那莫名其妙的ActiveX控件下载确认窗口了。在这种情况下,新的网页木马诞生了。这类网页木马通常利用IE浏览器的漏洞,在运行的时候没有丝毫提示,因此隐蔽性极高。
27、什么叫DOS./DDOS攻击?
答:DoS即Denial Of Service,拒绝服务的缩写。DoS是指利用网络协议实现的缺陷来耗尽被攻击对象的资源,目的是让目标计算机或网络无法提供正常的服务或资源访问,使目标系统服务系统停止响应甚至崩溃。在此攻击中并不包括侵入目标服务器或目标网络设备。这些被大量消耗的服务资源包括网络带宽、文件系统空间容量、开放的进程或者允许的连接。这种攻击会导致资源的匮乏,无论计算机的处理速度多快、内存容量多大、网络带宽有多高,都无法避免这种攻击带来的后果。
DDoS(Distributed Denial Of Service)又把DoS又向前发展了一大步,这种分布式拒绝服务攻击是黑客利用在已经被侵入并已被控制的、不同的高带宽主机(可能是数百,甚至成千上万台)上安装大量的DoS服务程序,它们等待来自中央攻击控制中心的命令。中央攻击控制中心再适时启动全体受控主机的DoS服务进程,让它们对一个特定目标发送尽可能多的网络访问请求,形成一股DoS洪流冲击目标系统,猛烈地DoS攻击同一个网站。被攻击的目标网站会很快失去反应而不能及时处理正常的访问甚至系统瘫痪崩溃。
28、什么叫网络钓鱼
答:网络钓鱼(Phishing,又名钓鱼法或钓鱼式攻击)是通过传播“声称来自于银行或其他知名机构”的欺骗信息,意图引诱受害者泄漏出敏感信息(如用户名、口令、帐号 ID 、 ATM PIN 码或信用卡详细信息)的一种攻击方式。最典型的网络钓鱼攻击将受害者引诱到一个与其目标网站非常相似的钓鱼网站上,并获取受害者在此网站上输入的个人敏感信息。通常这个攻击过程不会让受害者警觉。它是“社会工程攻击”的一种形式。
29、什么叫网络蠕虫
答:一般认为:蠕虫病毒是一种通过网络传播的恶性病毒,它除具有病毒的一些共性外,同时具有自己的一些特征。如:不利用文件寄生(有的只存在于内存中)、对网络造成拒绝服务,以及与黑客技术相结合,等等。蠕虫病毒主要的破坏方式是大量的复制自身,然后在网络中传播,严重占用有限的网络资源,最终引起整个网络的瘫痪,使用户不能通过网络进行正常的工作。每一次蠕虫病毒的爆发都会给全球经济造成巨大损失,因此它的危害性是十分巨大的。有一些蠕虫病毒还具有更改用户文件、将用户文件自动当附件转发的功能,更是严重的地危害到用户的 系统安全 。
30、什么叫僵尸网络
答:僵尸网络(英文名称叫BotNet),是互联网上受到黑客集中控制的一群计算机,往往被黑客用来发起大规模的网络攻击。如:分布式拒绝服务攻击(DDoS)、海量垃圾邮件等。同时,黑客控制的这些计算机所保存的信息也都可以被黑客随意“取用”。因此,不论是对网络安全运行还是用户数据安全的保护,僵尸网络都是极具威胁的隐患。然而,发现一个僵尸网络是非常困难的,因为黑客通常远程、隐蔽地控制分散在网络上的“僵尸主机”,这些主机的用户往往并不知情。因此,僵尸网络是目前互联网上最受黑客青睐的作案工具。
31、什么是ARP攻击
答:ARP是地址解析协议,是一种将IP地址转化为MAC地址的协议。在网络中,当A主机需要向B主机发送报文时,会先查询本地的ARP缓存表,找到与B主机IP地址对应的MAC地址后,进行数据传输。如果未找到,则会发送一个广播ARP请求报文,请求对应B主机IP的B回应MAC地址。这个广播包会被整个广播域中所有主机收到,但只有B主机会发现IP地址对应自己,才会将MAC地址回应给A。此时A收到这个回应并更新自己的ARP缓存,进行下一步的数据传输。ARP攻击应当叫做ARP欺骗,就是冒充网关地址对网络中主机给出ARP查询回应,使得本来是A->网关的数据走向,变成A->攻击者->网关。
32、ARP攻击的危害有哪些?
答:ARP攻击的危害主要有两个方面。从ARP攻击的原理来看,这种攻击使得受害主机的所有网络数据都将通过攻击者进行转发。这样一来,要窃取信息或控制流量就变得轻而易举。另一方面,由于ARP缓存会不断刷新,有的时候,真正的网关会偶尔“清醒”。当真正的网关参与到数据包转发中来时,由于做了一个切换动作,可能会有频繁的短暂掉线现象。所以,如果Web服务器所在网络中发生了ARP攻击,将导致Web服务器不可访问。
细分攻击介质:
33、WEB应用系统(网站)会面临来自哪些方面的安全问题
答:网站面临的安全问题是方方面面的,主要可概括为以下四个方面:
1)操作系统、后台数据库的安全问题
这里指操作系统和后台数据库的漏洞,配置不当,如弱口令等等,导致黑客、病毒可以利用这些缺陷对网站进行攻击。
2)Web发布系统的漏洞
Web业务常用的发布系统(即Web服务器),如IIS、Apache等,这些系统存在的安全漏洞,会给入侵者可乘之机。
3)Web应用程序的漏洞
主要指Web应用程序的编写人员,在编程的过程中没有考虑到安全的因素,使得黑客能够利用这些漏洞发起对网站的攻击,比如SQL注入、跨站脚本攻击等等。
4)自身网络的安全状况
网站服务器所处的网络安全状况也影响着网站的安全,比如网络中存在的DoS攻击等,也会影响到网站的正常运营。
34、Web程序漏洞是怎么形成的
答:Web站点之所以存在如此众多的安全漏洞,是由下列所示的这些原因造成的:
1、 大部分的中小型网站都是使用某个建站模块建设的,而这些通用的建站模块不仅本身存在各种安全漏洞,同时一些使用它们的建站人员根本没有在建站完成后对站点进行安全加固。
2、 Web站点开发人员对安全不够重视,在编写网页时,没有对用户的输入进行验证,没有对数据的大小、类型和字符串进行规范,没有限制API函数对系统资源的使用,以及对Web服务器没有进行相应的资源限制,引起拒绝服务攻击。
3、 管理员对Web服务器主机系统及Web应用程序本身配置不当,一些中小企业自己管理的Web站点根本没有足够的技术人员来管理它们的安全。
4、 当Web站点是托管在某个电信机房时,对它们进行的远程管理存在安全风险。
5、 Web站点管理员本身技术水平的限制,对各种针对Web站点的安全攻击不了解,也没有端正工作态度,没能对站点进行认真的安全加固,以及进行日常的安全检查。
6、 Web站点所处网络大环境的安全设计不合理,以及没有将安全防范工作融入到站点整个生命周期的各个阶段。
7、 企业领导不够重视,在Web站点的安全防范方面投入的资金太少或不合理,没有制定一个有效的Web站点安全防范策略,明确Web站点日常管理流程,也没有对Web站点的管理人员和工作人员进行不断的安全培训。
35、黑客主要利用哪些方法对网站进行数据窃取和修改
答:黑客需要使用拥有一定权限的用户帐户才能对网站进行数据窃取和修改,所以可能造成用户权限泄漏或提升的漏洞,都可以被黑客利用来进行攻击,如SQL注入,溢出漏洞、暴力猜解等。
36、目前对Web服务器威胁较大的SQL注入工具有哪些?
答:网上常见的SQL注入工具有“啊D SQL注入工具”、pangolin、NBSI、HDSI、“管中窥豹注入工具”等。
37、目前对Web服务器威胁较大的XSS攻击工具有哪些?
答:网上常见的XSS攻击工具有sessionIE、Webscan、XSS Inject Scanner 等。
38、怎样应对Web业务安全事件
答:应对Web业务安全事件,从根本上的解决办法就是对Web应用程序源代码进行代码检查和漏洞修复,但是这会影响正常Web业务运行,而且费用较高。比较有效的解决方案是通过专业的Web业务安全检查工具或服务来检查网站安全状况,部署专业的Web安全产品。比如基于行为检测的入侵防御产品。同时在管理上,要求网管人员实时对网站进行监测,一旦发现网页被篡改等问题立刻进行页面恢复、删除恶意脚本等工作。
39、如何防御SQL注入
答:要想从根本上解决XSS攻击,就要对Web应用程序源代码进行检查,发现安全漏洞进行修改。但是这种方法在实际中给用户带来了不便,如:需要花费大量的人力财力、可能无法找到当时的网站开发人员、需要网站下线等。对代码进行修改后,由于增加了过滤条件和功能,同时也给服务器带来了计算压力。通常的解决方法是在数据库服务器前端部署入侵防御产品。SQL注入攻击具有变种多、隐蔽性强等特点,传统的特征匹配检测方式不能有效地进行防御,需要采用“基于攻击手法的行为监测”的入侵防御产品才能够精确地检测到SQL注入攻击。
40、如何防御XSS
答:要想从根本上解决XSS攻击,就要对Web应用程序源代码进行检查,发现安全漏洞进行修改。但是这种方法在实际中给用户带来了不便,如:需要花费大量的人力财力;可能无法找到当时的网站开发人员、需要网站下线等。对代码进行修改后,由于增加了过滤条件和功能,同时也给服务器带来了计算压力。通常的解决方法是在数据库服务器前端部署入侵防御产品。XSS攻击具有变种多、隐蔽性强等特点,传统的特征匹配检测方式不能有效地进行防御,需要采用基于攻击手法的行为监测的入侵防御产品产品才能够精确地检测到XSS攻击。
41、如何发现网站挂马
答:服务器被挂马,通常情况下,若出现诸如“弹出页面”,则可以比较容易发现,发现防病毒软件告警之类,则可以发现服务器被挂马;由于漏洞不断更新,挂马种类时刻都在变换,通过客户端的反映来发现服务器是否被挂马往往疏漏较大;正确的做法是经常性的检查服务器日志,发现异常信息;经常检查网站代码,借助于专业的检测工具来发现网页木马会大大提高工作效率和准确度。
G. 网络安全怎么入门
入门
然而当你掌握了Web基础知识时,你才会残酷的发现你还远远没有入门。 这里给出一些我的建议:
1. 多看书
阅读永远是最有效的方法,尽管书籍并不一定是最好的入门方式,但书籍的理解需要一定的基础;但是就目前来看,书籍是比较靠谱的入门资料。
例如
《黑客攻防---web安全实战详解》《Web前端黑客技术揭秘》《安全之路:Web渗透技术及实战案例解析(第2版)》
现在Web安全书籍比较多,因此大家在学习的过程中可以少走了不少的弯路。如果以上推荐书籍阅读有困难,那就找自己能看得进的 Web 安全的书。
当然纸上谈兵终觉浅,不实践一下怎么好呢。
2.常用工具的学习
1.Burpsuite学习 Proxy 抓包改包学习 Intruder 爆破模块学习实用 Bapp 应用商店中的插件2.Nmap使用 Nmap 探测目标主机所开放的端口使用 Nmap 探测目标主机的网络服务,判断其服务名称及版本号3.SQLMap对 AWVS 中扫描出的 SQL 注入漏洞使用 SQLMap 进行数据获取实践常见漏洞类型的挖掘与利用方
3.学习开发
1.书籍《细说 PHP》2.实践使用 PHP 写一个列目录的脚本,可以通过参数列出任意目录的列表使用 PHP 抓取一个网页的内容并输出使用 PHP 抓取一个网页的内容并写入到Mysql数据库再输出
H. 学习网络安全需要哪些基础知识
学习网络安全一般来说不会需要特别的基础知识。你可以完整性地将网络安全由基础到高阶进行学习。这里整理了一份网络安全所需学习的内容,大致可以分为以下几个阶段,你可以参考进行学习。
希望能够帮到你!!!
I. 网络安全难学习吗
和其他学科一样,学习知识不难,难的是在坚持学习。
现在市面上在职的网络安全工程师,有很大一部分都并非科班出身的,很多都是通过自学或是培训机构学成就业的。所以也可以看出,这个方向学习难度没有那么高,想学的话完全不用担心。
还有一点需要注意,网络安全的知识是比较繁杂的,最好能够找到适合自己的学习路线跟着进行系统的学习。
一般的网络安全学习路线是:
1、了解基本的网络和组网以及相关设备的使用;
2、学习系统原理,web功能系统还有Web前后端基础与服务器通信原理
3、前端代码、后端程序设计入门
入门的意思就是学习基本的html、js、asp、mssql、php、mysql等脚本类的语言,服务器是指:WinServer、Nginx、Apache等
4、学习主流的安全技能原理&利用
5、学习当下主流漏洞的原理和利用
即SQL、XSS、CSRF等主流漏洞的原理与利用学习
6、掌握漏洞挖掘思路,技巧
学习前人所挖0day(零日漏洞)的思路,复现,尝试相同审计。
7、进行实战训练
寻找带“体系化”的靶场去进行练习、实战。
这只是大概一般的学习路线,每个人的学习方法、效率都不同,这个路线仅作参考。
J. 整理涵盖很全很广的前端知识点
HTML、CSS相关
html5新特性、语义化
浏览器渲染机制、重绘、重排
网页生成过程:
重排(也称回流): 当 DOM 的变化影响了元素的几何信息( DOM 对象的位置和尺寸大小),浏览器需要重新计算元素的几何属性,将其安放在界面中的正确位置,这个过程叫做重排。 触发:
重绘: 当一个元素的外观发生改变,但没有改变布局,重新把元素外观绘制出来的过程,叫做重绘。 触发:
重排优化建议:
transform 不重绘,不回流 是因为 transform 属于合成属性,对合成属性进行 transition/animate 动画时,将会创建一个合成层。这使得动画元素在一个独立的层中进行渲染。当元素的内容没有发生改变,就没有必要进行重绘。浏览器会通过重新复合来创建动画帧。
css盒子模型
所有 HTML 元素可以看作盒子,在CSS中, "box model" 这一术语是用来设计和布局时使用。 CSS 盒模型本质上是一个盒子,封装周围的 HTML 元素,它包括:边距,边框,填充,和实际内容。 盒模型允许我们在其它元素和周围元素边框之间的空间放置元素。
css样式优先级
!important>style>id>class
什么是BFC?BFC的布局规则是什么?如何创建BFC?BFC应用?
BFC 是 Block Formatting Context 的缩写,即块格式化上下文。 BFC 是CSS布局的一个概念,是一个环境,里面的元素不会影响外面的元素。 布局规则:Box是CSS布局的对象和基本单位,页面是由若干个Box组成的。元素的类型和display属性,决定了这个Box的类型。不同类型的Box会参与不同的 Formatting Context 。 创建:浮动元素 display:inline-block position:absolute 应用: 1.分属于不同的 BFC 时,可以防止 margin 重叠 2.清除内部浮动 3.自适应多栏布局
DOM、BOM对象
BOM(Browser Object Model) 是指浏览器对象模型,可以对浏览器窗口进行访问和操作。使用 BOM,开发者可以移动窗口、改变状态栏中的文本以及执行其他与页面内容不直接相关的动作。 使 JavaScript 有能力与浏览器"对话"。 DOM (Document Object Model) 是指文档对象模型,通过它,可以访问 HTML 文档的所有元素。 DOM 是 W3C (万维网联盟)的标准。 DOM 定义了访问 HTML 和 XML 文档的标准: "W3C 文档对象模型(DOM)是中立于平台和语言的接口,它允许程序和脚本动态地访问和更新文档的内容、结构和样式。" W3C DOM 标准被分为 3 个不同的部分:
什么是 XML DOM ? XML DOM 定义了所有 XML 元素的对象和属性,以及访问它们的方法。 什么是 HTML DOM? HTML DOM 定义了所有 HTML 元素的对象和属性,以及访问它们的方法。
JS相关
js数据类型、typeof、instanceof、类型转换
闭包(高频)
闭包是指有权访问另一个函数作用域中的变量的函数 ——《JavaScript高级程序设计》
当函数可以记住并访问所在的词法作用域时,就产生了闭包,
即使函数是在当前词法作用域之外执行 ——《你不知道的JavaScript》
原型、原型链(高频)
原型: 对象中固有的 __proto__ 属性,该属性指向对象的 prototype 原型属性。
原型链: 当我们访问一个对象的属性时,如果这个对象内部不存在这个属性,那么它就会去它的原型对象里找这个属性,这个原型对象又会有自己的原型,于是就这样一直找下去,也就是原型链的概念。原型链的尽头一般来说都是 Object.prototype 所以这就是我们新建的对象为什么能够使用 toString() 等方法的原因。
特点: JavaScript 对象是通过引用来传递的,我们创建的每个新对象实体中并没有一份属于自己的原型副本。当我们修改原型时,与之相关的对象也会继承这一改变。
this指向、new关键字
this 对象是是执行上下文中的一个属性,它指向最后一次调用这个方法的对象,在全局函数中, this 等于 window ,而当函数被作为某个对象调用时,this等于那个对象。 在实际开发中, this 的指向可以通过四种调用模式来判断。
new
作用域、作用域链、变量提升
继承(含es6)、多种继承方式
(1)第一种是以 原型链的方式来实现继承 ,但是这种实现方式存在的缺点是,在包含有引用类型的数据时,会被所有的实例对象所共享,容易造成修改的混乱。还有就是在创建子类型的时候不能向超类型传递参数。
(2)第二种方式是使用 借用构造函数 的方式,这种方式是通过在子类型的函数中调用超类型的构造函数来实现的,这一种方法解决了不能向超类型传递参数的缺点,但是它存在的一个问题就是无法实现函数方法的复用,并且超类型原型定义的方法子类型也没有办法访问到。
(3)第三种方式是 组合继承 ,组合继承是将原型链和借用构造函数组合起来使用的一种方式。通过借用构造函数的方式来实现类型的属性的继承,通过将子类型的原型设置为超类型的实例来实现方法的继承。这种方式解决了上面的两种模式单独使用时的问题,但是由于我们是以超类型的实例来作为子类型的原型,所以调用了两次超类的构造函数,造成了子类型的原型中多了很多不必要的属性。
(4)第四种方式是 原型式继承 ,原型式继承的主要思路就是基于已有的对象来创建新的对象,实现的原理是,向函数中传入一个对象,然后返回一个以这个对象为原型的对象。这种继承的思路主要不是为了实现创造一种新的类型,只是对某个对象实现一种简单继承,ES5 中定义的 Object.create() 方法就是原型式继承的实现。缺点与原型链方式相同。
(5)第五种方式是 寄生式继承 ,寄生式继承的思路是创建一个用于封装继承过程的函数,通过传入一个对象,然后复制一个对象的副本,然后对象进行扩展,最后返回这个对象。这个扩展的过程就可以理解是一种继承。这种继承的优点就是对一个简单对象实现继承,如果这个对象不是我们的自定义类型时。缺点是没有办法实现函数的复用。
(6)第六种方式是 寄生式组合继承 ,组合继承的缺点就是使用超类型的实例做为子类型的原型,导致添加了不必要的原型属性。寄生式组合继承的方式是使用超类型的原型的副本来作为子类型的原型,这样就避免了创建不必要的属性。
EventLoop
JS 是单线程的,为了防止一个函数执行时间过长阻塞后面的代码,所以会先将同步代码压入执行栈中,依次执行,将异步代码推入异步队列,异步队列又分为宏任务队列和微任务队列,因为宏任务队列的执行时间较长,所以微任务队列要优先于宏任务队列。微任务队列的代表就是, Promise.then , MutationObserver ,宏任务的话就是 setImmediate setTimeout setInterval
原生ajax
ajax 是一种异步通信的方法,从服务端获取数据,达到局部刷新页面的效果。 过程:
事件冒泡、捕获(委托)
event.stopPropagation() 或者 ie下的方法 event.cancelBubble = true; //阻止事件冒泡
ES6
Vue
简述MVVM
MVVM 是 Model-View-ViewModel 缩写,也就是把 MVC 中的 Controller 演变成 ViewModel。Model 层代表数据模型, View 代表UI组件, ViewModel 是 View 和 Model 层的桥梁,数据会绑定到 viewModel 层并自动将数据渲染到页面中,视图变化的时候会通知 viewModel 层更新数据。
谈谈对vue生命周期的理解?
每个 Vue 实例在创建时都会经过一系列的初始化过程, vue 的生命周期钩子,就是说在达到某一阶段或条件时去触发的函数,目的就是为了完成一些动作或者事件
computed与watch
watch 属性监听 是一个对象,键是需要观察的属性,值是对应回调函数,主要用来监听某些特定数据的变化,从而进行某些具体的业务逻辑操作,监听属性的变化,需要在数据变化时执行异步或开销较大的操作时使用
computed 计算属性 属性的结果会被缓存,当 computed 中的函数所依赖的属性没有发生改变的时候,那么调用当前函数的时候结果会从缓存中读取。除非依赖的响应式属性变化时才会重新计算,主要当做属性来使用 computed 中的函数必须用 return 返回最终的结果 computed 更高效,优先使用
使用场景 computed :当一个属性受多个属性影响的时候使用,例:购物车商品结算功能 watch :当一条数据影响多条数据的时候使用,例:搜索数据
v-for中key的作用
vue组件的通信方式
父子组件通信
父->子 props ,子->父 $on、$emit` 获取父子组件实例 parent、 parent 、children Ref 获取实例的方式调用组件的属性或者方法 Provide、inject` 官方不推荐使用,但是写组件库时很常用
兄弟组件通信
Event Bus 实现跨组件通信 Vue.prototype.$bus = new Vue() Vuex
跨级组件通信
$attrs、$listeners Provide、inject
常用指令
双向绑定实现原理
当一个 Vue 实例创建时,Vue会遍历data选项的属性,用 Object.defineProperty 将它们转为 getter/setter并且在内部追踪相关依赖,在属性被访问和修改时通知变化。每个组件实例都有相应的 watcher 程序实例,它会在组件渲染的过程中把属性记录为依赖,之后当依赖项的 setter 被调用时,会通知 watcher重新计算,从而致使它关联的组件得以更新。
v-model的实现以及它的实现原理吗?
nextTick的实现
vnode的理解,compiler和patch的过程
new Vue后整个的流程
思考:为什么先注入再提供呢??
答:1、首先来自祖辈的数据要和当前实例的data,等判重,相结合,所以注入数据的initInjections一定要在 InitState 的上面。2. 从上面注入进来的东西在当前组件中转了一下又提供给后代了,所以注入数据也一定要在上面。
vm.[Math Processing Error]mount(vm.mount(vm.options.el) :挂载实例。
keep-alive的实现
作用:实现组件缓存
钩子函数:
原理: Vue.js 内部将 DOM 节点抽象成了一个个的 VNode 节点, keep-alive 组件的缓存也是基于 VNode 节点的而不是直接存储 DOM 结构。它将满足条件 (pruneCache与pruneCache) 的组件在 cache 对象中缓存起来,在需要重新渲染的时候再将 vnode 节点从 cache 对象中取出并渲染。
配置属性:
include 字符串或正则表达式。只有名称匹配的组件会被缓存
exclude 字符串或正则表达式。任何名称匹配的组件都不会被缓存
max 数字、最多可以缓存多少组件实例
vuex、vue-router实现原理
vuex 是一个专门为vue.js应用程序开发的状态管理库。 核心概念:
你怎么理解Vue中的diff算法?
在js中,渲染真实 DOM 的开销是非常大的, 比如我们修改了某个数据,如果直接渲染到真实 DOM , 会引起整个 dom 树的重绘和重排。那么有没有可能实现只更新我们修改的那一小块dom而不要更新整个 dom 呢?此时我们就需要先根据真实 dom 生成虚拟 dom , 当虚拟 dom 某个节点的数据改变后会生成有一个新的 Vnode , 然后新的 Vnode 和旧的 Vnode 作比较,发现有不一样的地方就直接修改在真实DOM上,然后使旧的 Vnode 的值为新的 Vnode 。
diff 的过程就是调用 patch 函数,比较新旧节点,一边比较一边给真实的 DOM 打补丁。在采取 diff 算法比较新旧节点的时候,比较只会在同层级进行。 在 patch 方法中,首先进行树级别的比较 new Vnode 不存在就删除 old Vnode old Vnode 不存在就增加新的 Vnode 都存在就执行diff更新 当确定需要执行diff算法时,比较两个 Vnode ,包括三种类型操作:属性更新,文本更新,子节点更新 新老节点均有子节点,则对子节点进行 diff 操作,调用 updatechidren 如果老节点没有子节点而新节点有子节点,先清空老节点的文本内容,然后为其新增子节点 如果新节点没有子节点,而老节点有子节点的时候,则移除该节点的所有子节点 老新老节点都没有子节点的时候,进行文本的替换
updateChildren 将 Vnode 的子节点Vch和oldVnode的子节点oldCh提取出来。 oldCh和vCh 各有两个头尾的变量 StartIdx和EndIdx ,它们的2个变量相互比较,一共有4种比较方式。如果4种比较都没匹配,如果设置了 key ,就会用 key 进行比较,在比较的过程中,变量会往中间靠,一旦 StartIdx>EndIdx 表明 oldCh和vCh 至少有一个已经遍历完了,就会结束比较。
你都做过哪些Vue的性能优化?
你知道Vue3有哪些新特性吗?它们会带来什么影响?
更小巧、更快速 支持自定义渲染器 支持摇树优化:一种在打包时去除无用代码的优化手段 支持Fragments和跨组件渲染
模板语法99%保持不变 原生支持基于class的组件,并且无需借助任何编译及各种stage阶段的特性 在设计时也考虑TypeScript的类型推断特性 重写虚拟DOM 可以期待更多的编译时提示来减少运行时的开销 优化插槽生成 可以单独渲染父组件和子组件 静态树提升 降低渲染成本 基于Proxy的观察者机制 节省内存开销
检测机制 更加全面、精准、高效,更具可调试式的响应跟踪
实现双向绑定 Proxy 与 Object.defineProperty 相比优劣如何?
React
1、react中key的作用,有key没key有什么区别,比较同一层级节点什么意思?
2、你对虚拟dom和diff算法的理解,实现render函数
虚拟DOM 本质上是 JavaScript 对象,是对 真实DOM 的抽象表现。 状态变更时,记录新树和旧树的差异 最后把差异更新到真正的 dom 中 render函数:
3、React组件之间通信方式?
Context 提供了一个无需为每层组件手动添加 props ,就能在组件树间进行数据传递的方法.如果你只是想避免层层传递一些属性,组件组合( component composition )有时候是一个比 context 更好的解决方案。 5. 组件组合缺点:会使高层组件变得复杂
4、如何解析jsx
5、生命周期都有哪几种,分别是在什么阶段做哪些事情?为什么要废弃一些生命周期?
componentWillMount、componentWillReceiveProps、componentWillUpdate在16版本被废弃,在17版本将被删除,需要使用UNSAVE_前缀使用,目的是向下兼容。
6、关于react的优化方法
使用return null而不是CSS的display:none来控制节点的显示隐藏。保证同一时间页面的DOM节点尽可能的少。
不要使用数组下标作为key 利用 shouldComponentUpdate 和 PureComponent 避免过多 render function ; render 里面尽量减少新建变量和bind函数,传递参数是尽量减少传递参数的数量。 尽量将 props 和 state 扁平化,只传递 component 需要的 props (传得太多,或者层次传得太深,都会加重 shouldComponentUpdate 里面的数据比较负担),慎将 component 当作 props 传入
使用 babel-plugin-import 优化业务组件的引入,实现按需加载 使用 SplitChunksPlugin 拆分公共代码 使用动态 import ,懒加载 React 组件
7、绑定this的几种方式
8、对fiber的理解
9、setState是同步还是异步的
10、Rex、React-Rex
Rex的实现流程
用户页面行为触发一个 Action ,然后 Store 调用 Recer ,并且传入两个参数:当前 State 和收到的 Action 。 Recer 会返回新的 State 。每当 state 更新之后, view 会根据 state 触发重新渲染。
React-Rex:
Provider :从最外部封装了整个应用,并向 connect 模块传递 store 。 Connect :
11、对高阶组件的理解
高阶组件是参数为组件,返回值为新组件的函数。 HOC 是纯函数,没有副作用。 HOC 在 React 的第三方库中很常见,例如 Rex 的 connect 组件。
高阶组件的作用:
12、可以用哪些方式创建 React 组件?
React.createClass()、ES6 class 和无状态函数
13、 React 元素与组件的区别?
组件是由元素构成的。元素数据结构是普通对象,而组件数据结构是类或纯函数。
Vue与React对比?
数据流:
react 主张函数式编程,所以推崇纯组件,数据不可变,单向数据流,
vue 的思想是响应式的,也就是基于是数据可变的,通过对每一个属性建立Watcher来监听,当属性变化的时候,响应式的更新对应的虚拟dom。
监听数据变化实现原理 :
组件通信的区别:jsx和.vue模板。
性能优化
vuex 和 rex 之间的区别?
从实现原理上来说,最大的区别是两点:
Rex 使用的是不可变数据,而 Vuex 的数据是可变的。 Rex 每次都是用新的 state 替换旧的 state ,而 Vuex 是直接修改
Rex 在检测数据变化的时候,是通过 diff 的方式比较差异的,而 Vuex 其实和Vue的原理一样,是通过 getter/setter 来比较的(如果看 Vuex 源码会知道,其实他内部直接创建一个 Vue 实例用来跟踪数据变化)
浏览器从输入url到渲染页面,发生了什么?
网络安全、HTTP协议
TCP UDP 区别
Http和Https区别(高频)
GET和POST区别(高频)
理解xss,csrf,ddos攻击原理以及避免方式
XSS ( Cross-Site Scripting , 跨站脚本攻击 )是一种代码注入攻击。攻击者在目标网站上注入恶意代码,当被攻击者登陆网站时就会执行这些恶意代码,这些脚本可以读取 cookie,session tokens ,或者其它敏感的网站信息,对用户进行钓鱼欺诈,甚至发起蠕虫攻击等。
CSRF ( Cross-site request forgery ) 跨站请求伪造 :攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求。利用受害者在被攻击网站已经获取的注册凭证,绕过后台的用户验证,达到冒充用户对被攻击的网站执行某项操作的目的。
XSS避免方式:
CSRF 避免方式:
DDoS 又叫分布式拒绝服务,全称 Distributed Denial of Service ,其原理就是利用大量的请求造成资源过载,导致服务不可用。