前端程序员必须知道的 Web 漏洞,快来看看
随着互联网的发展,早已经不是仅限于简单的网页或是社交,电商购物、银行转账、企业管理等等。上次看到一个新闻,后台程序员离职后,利用职位之便,每天还不断的给自己转账,转了好多次才被发现,想想这多可怕。或者会窃取重要的商业信息,所以 Web 安全也是非常值得注意的。
什么是 Web 安全?
黑客利用 *** 操作系统的漏洞和 Web 服务器的 SQL 注入漏洞等,得到 Web 服务器的控制权,轻则篡改、删除、添加数据,重则窃取重要的商业信息、转账等,更严重的就是在网页中植入恶意代码,使网站受到不可预期的侵害。
常见的攻击可分为三类:XSS、CSRF、SQL注入。
Cross Site Scripting 跨站脚本攻击,为了与 CSS 区分,所以简写为 XSS 。
恶意攻击给 Web 页面植入恶意的 Script 代码,当用户浏览该网页的时候,嵌入 Web 里面的 script 代码会被执行,从而达到攻击的效果。
讲直白点,就是恶意攻击者通过在输入框处添加恶意 script 代码,用户浏览网页的时候执行 script 代码,从而达到恶意攻击用户的目的。
1.1、XSS 的危害
1.2、XSS 的攻击类型
发出请求时,XSS代码会出现在 url 中,作为输入提交到服务器端,服务器再返回给浏览器,然后浏览器解析执行 XSS 代码,这一过程像一次反射,所以称之为反射型。
这种类型的攻击,通常是把 XSS 攻击代码放入请求地址的 数据传输部分,如:
提交的 XSS 代码会存储在服务器端,如数据库、内存、文件系统内,下次请求目标页面时不再提交 XSS 代码。
文档型的 XSS 攻击不会经过服务器,作为中间人的角色,在数据传输过程中劫持到 *** 数据包,然后修改里面的 html 文档。
1.3、XSS 的防御措施
措施1:编码。
对这些数据进行 html entity 编码。客户端和服务器端都需要进行转义编码。
转义后为:
放入上边的代码中,还是会自动解析为上边的代码,所以放到外边。
措施2:过滤。
移除用户上传的 DOM 属性,如上边的 onerror。
移除用户上传的 style、script、iframe 节点。
措施3:利用 CSP
浏览器中的内容安全策略,就是决策浏览器加载哪些资源。
Cross site request forgery 跨站点请求伪造。
攻击者诱导受害者进入第三方网站,向被攻击网站发送跨站请求,利用被攻击者在被攻击网站已经获取的注册凭证,绕过后台的用户验证达到冒充用户对攻击网站进行的某种操作。
CSRF 攻击特点:
2.1、CSRF 的危害
2.2、CSRF 的攻击类型
使用非常简单,只需要一个 http 请求。
比如页面中的一个图片添加链接,还有 iframe、script ,最容易完成 CSFR 攻击,且不易被用户发现,隐蔽性超强。
由于 get 接口是最常见的一种 CSRF 攻击类型,所以很多重要的接口不适用 get 方式,使用 post 一定程度上可以防止 CSRF 攻击。
这种类型的 SCRF 攻击,通常使用的是一个自动提交的表单。简单讲就是伪造一个自动提交的表单,一旦访问页面时,表单就会自动提交。
如:
比起前两个,这个类型的比较少见,链接类型的攻击必须要用户点击链接,才能触发。
通常在论坛中发布的图片嵌入恶意的链接,或以广告的形式诱导用户点击中招。所以我们在邮箱中看到乱七八糟的广告,尽量别点击,防止遇到三方攻击。
伪造一种新型的攻击方式,用户误以为是在网站正常登录,实际上是使用账户和密码登录到了黑客网站,这样黑客可以监听到用户的所有操作,甚至知道用户的账户信息。
2.3、CSRF 的防御措施
措施1:检查 http 头部的 referer 信息
referer 包含在请求头内,表示请求接口的页面来源。
服务端通过检查 referer 信息,发现来源于外域时,就可以拦截请求,通过阻止不明外域的访问,一定程度上可以减少攻击。
措施2:使用一次性令牌
使用一次性令牌做身份识别,黑客是无法通过跨域拿到一次性令牌的,所以服务端可以通过判断是否携带一次性令牌,就可以排除一部分的非法操作者。
措施3:使用验证图片
服务端生成一些文本和数字,在服务端保存这份信息,同时以图片的形式在客户端展现,让用户去合法填写信息,当 CSRF 攻击时,拿不到这个验证码的时候,无法向服务器提供这个信息,导致匹配失败,从而识别它是非法攻击者。
这个应用非常常见,之前登录的时候,需要填写图形验证码。
现在滑动图片验证也非常常见。
SQL 注入,一般发生在注册、评论、添加等,只有有用户输入的地方,就有可能发生 SQL 注入。SQL 注入是一种常见的 Web 安全漏洞,攻击者会利用这个漏洞,可以访问或修改数据,利用潜在的数据库漏洞进行攻击。
所谓SQL注入,就是通过把SQL命令插入到Web 表单 提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意的)SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到 SQL注入式攻击 .
3.1、SQL 注入危害
任意的账号都可以登录,可以进行任意的操作,粗暴点讲,就是随便来。
3.2、 SQL注入分类
当输入的参数为整数时,则有可能存在数字型漏洞。
当输入参数为字符串时,则可能存在字符型注入漏洞。数字型与字符型注入更大的区别在于:数字型不需要单引号闭合,而字符型一般需要使用单引号来闭合。
字符型注入最关键的是如何闭合 SQL 语句以及注释多余的代码。
其实我觉得 SQL 注入只有两种类型:数字型与字符型。很多人可能会说还有如:Cookie 注入、POST 注入、延时注入等。
的确如此,但这些类型的注入归根结底也是数字型和字符型注入的不同展现形式或者注入的位置不同罢了。
以下是一些常见的注入叫法:
3.3、SQL注入的防范措施
凡是用户输入的地方,我们都应该防止黑客攻击,永远不要相信用户的输入。所以对应的防御措施分别有:
前后端分离之后,前端每天都会接触到很多接口。发送 *** 请求的时候,有些接口就会使用 get *** 。最常见的传参方式就是,直接在 url 地址后面加参数。
直接采用这种方式传输数据,如果数据被劫持或抓包工具偷走之后,就会直接被人盗取走,特别危险。若是采用接口加密,如下:
上边那个看不懂的一长串符号,正是经过加密的数据。
接口加密就是将接口请求调用中传递的参数进行加密,目的就是为了保证接口请求中传递参数和返回的结果的安全性,一般比较敏感数据,如身份证、 *** 号码、账号、密码等需要进行加密。
常见的加密方式:
加密方式较多,可以根据自己具体的需要和项目语言选择其中一种。
加密之后的数据更安全,那我们能不能将接口所有的数据都进行加密呢?加密是非常消耗资源的,如果有大批量的数据都进行加密时,返回数据需要的时间就更长,会直接影响用户体验。所以我们进行加密时,只需要对敏感的重要的信息进行加密。
好了我今天的文章就到此结束了,本篇文章没有介绍到的 web 安全,欢迎评论区交流!
*** 安全技术 常见的DDoS攻击 *** 有哪些
常见的DDoS攻击 *** 有:
1、SYN/ACK Flood攻击
这种攻击 *** 是经典最有效的DDOS攻击 *** ,可通杀各种系统的 *** 服务,主要是通过向受害主机发送大量伪造源IP和源端口的SYN或ACK包,导致主机的缓存资源被耗尽或忙于发送回应包而造成拒绝服务,由于源都是伪造的故追踪起来比较困难,缺点是实施起来有一定难度,需要高带宽的僵尸主机支持。少量的这种攻击会导致主机服务器无法访问,但却可以Ping的通,在服务器上用Netstat -na命令会观察到存在大量的SYN_RECEIVED状态,大量的这种攻击会导致Ping失败、TCP/IP栈失效,并会出现系统凝固现象,即不响应键盘和鼠标。普通防火墙大多无法抵御此种攻击。
2、TCP全连接攻击
这种攻击是为了绕过常规防火墙的检查而设计的,一般情况下,常规防火墙大多具备过滤TearDrop、Land等DOS攻击的能力,但对于正常的TCP连接是放过的,殊不知很多 *** 服务程序(如:IIS、Apache等Web服务器)能接受的TCP连接数是有限的,一旦有大量的TCP连接,即便是正常的,也会导致网站访问非常缓慢甚至无法访问,TCP全连接攻击就是通过许多僵尸主机不断地与受害服务器建立大量的TCP连接,直到服务器的内存等资源被耗尽而被拖跨,从而造成拒绝服务,这种攻击的特点是可绕过一般防火墙的防护而达到攻击目的,缺点是需要找很多僵尸主机,并且由于僵尸主机的IP是暴露的,因此此种DDOS攻击方式容易被追踪。
3、刷Script脚本攻击
这种攻击主要是针对存在ASP、 *** P、PHP、CGI等脚本程序,并调用MSSQLServer、MySQLServer、Oracle等数据库的网站系统而设计的,特征是和服务器建立正常的TCP连接,并不断的向脚本程序提交查询、列表等大量耗费数据库资源的调用,典型的以小博大的攻击 *** 。一般来说,提交一个GET或POST指令对客户端的耗费和带宽的占用是几乎可以忽略的,而服务器为处理此请求却可能要从上万条记录中去查出某个记录,这种处理过程对资源的耗费是很大的,常见的数据库服务器很少能支持数百个查询指令同时执行,而这对于客户端来说却是轻而易举的,因此攻击者只需通过Proxy *** 向主机服务器大量递交查询指令,只需数分钟就会把服务器资源消耗掉而导致拒绝服务,常见的现象就是网站慢如蜗牛、ASP程序失效、PHP连接数据库失败、数据库主程序占用CPU偏高。这种攻击的特点是可以完全绕过普通的防火墙防护,轻松找一些Proxy *** 就可实施攻击,缺点是对付只有静态页面的网站效果会大打折扣,并且有些Proxy会暴露DDOS攻击者的IP地址。
*** 安全攻击手段
" *** 攻击的常用手段
1、获取口令
这又有三种 *** :一是通过 *** 监听非法得到用户口令,这类 *** 有一定的局限性,但危害性极大,监听者往往能够获得其所在网段的所有用户账号和口令,对局域网安全威胁巨大;二是在知道用户的账号后(如电子邮件@前面的部分)利用一些专门软件强行破解用户口令,这种 *** 不受网段限制,但黑客要有足够的耐心和时间;三是在获得一个服务器上的用户口令文件(此文件成为Shadow文件)后,用暴力破解程序破解用户口令,该 *** 的使用前提是黑客获得口令的Shadow文件。此 *** 在所有 *** 中危害更大,因为它不需要像第二种 *** 那样一遍又一遍地尝试登录服务器,而是在本地将加密后的口令与Shadow文件中的口令相比较就能非常容易地破获用户密码,尤其对那些弱智用户(指口令安全系数极低的用户,如某用户账号为zys,其口令就是zys666、666666、或干脆就是zys等)更是在短短的一两分钟内,甚至几十秒内就可以将其干掉。
2、放置特洛伊木马程序
特洛伊木马程序可以直接侵入用户的电脑并进行破坏,它常被伪装成工具程序或者游戏等诱使用户打开带有特洛伊木马程序的邮件附件或从网上直接下载,一旦用户打开了这些邮件的附件或者执行了这些程序之后,它们就会象古特洛伊人在敌人城外留下的藏满士兵的木马一样留在自己的电脑中,并在自己的计算机系统中隐藏一个可以在Windows启动时悄悄执行的程序。当您连接到因特网上时,这个程序就会通知黑客,来报告您的IP地址以及预先设定的端口。黑客在收到这些信息后,再利用这个潜伏在其中的程序,就可以任意地修改您的计算机的参数设定、复制文件、窥视你整个硬盘中的内容等,从而达到控制你的计算机的目的。
3、WWW的欺骗技术
在网上用户可以利用IE等浏览器进行各种各样的WEB站点的访问,如阅读新闻组、咨询产品价格、订阅报纸、电子商务等。然而一般的用户恐怕不会想到有这些问题存在:正在访问的网页已经被黑客篡改过,网页上的信息是虚假的!例如黑客将用户要浏览的网页的URL改写为指向黑客自己的服务器,当用户浏览目标网页的时候,实际上是向黑 *** 务器发出请求,那么黑客就可以达到欺骗的目的了。
4、电子邮件攻击
电子邮件攻击主要表现为两种方式:一是电子邮件轰炸和电子邮件“滚雪球”,也就是通常所说的邮件炸弹,指的是用伪造的IP地址和电子邮件地址向同一信箱发送数以千计、万计甚至无穷多次的内容相同的垃圾邮件,致使受害人邮箱被“炸”,严重者可能会给电子邮件服务器操作系统带来危险,甚至瘫痪;二是电子邮件欺骗,攻击者佯称自己为系统管理员(邮件地址和系统管理员完全相同),给用户发送邮件要求用户修改口令(口令可能为指定字符串)或在貌似正常的附件中加载病毒或其他木马程序(据笔者所知,某些单位的 *** 管理员有定期给用户免费发送防火墙升级程序的义务,这为黑客成功地利用该 *** 提供了可乘之机),这类欺骗只要用户提高警惕,一般危害性不是太大。
5、通过一个节点来攻击其他节点
黑客在突破一台主机后,往往以此主机作为根据地,攻击其他主机(以隐蔽其入侵路径,避免留下蛛丝马迹)。他们可以使用 *** 监听 *** ,尝试攻破同一 *** 内的其他主机;也可以通过IP欺骗和主机信任关系,攻击其他主机。这类攻击很狡猾,但由于某些技术很难掌握,如IP欺骗,因此较少被黑客使用。
6、 *** 监听
*** 监听是主机的一种工作模式,在这种模式下,主机可以接受到本网段在同一条物理通道上传输的所有信息,而不管这些信息的发送方和接受方是谁。此时,如果两台主机进行通信的信息没有加密,只要使用某些 *** 监听工具,例如NetXray for windows 95/98/nt,sniffit for linux 、solaries等就可以轻而易举地截取包括口令和帐号在内的信息资料。虽然 *** 监听获得的用户帐号和口令具有一定的局限性,但监听者往往能够获得其所在网段的所有用户帐号及口令。
7、寻找系统漏洞
许多系统都有这样那样的安全漏洞(Bugs),其中某些是操作系统或应用软件本身具有的,如Sendmail漏洞,win98中的共享目录密码验证漏洞和IE5漏洞等,这些漏洞在补丁未被开发出来之前一般很难防御黑客的破坏,除非你将网线拔掉;还有一些漏洞是由于系统管理员配置错误引起的,如在 *** 文件系统中,将目录和文件以可写的方式调出,将未加Shadow的用户密码文件以明码方式存放在某一目录下,这都会给黑客带来可乘之机,应及时加以修正。
8、利用帐号进行攻击
有的黑客会利用操作系统提供的缺省账户和密码进行攻击,例如许多UNIX主机都有FTP和Guest等缺省账户(其密码和账户名同名),有的甚至没有口令。黑客用Unix操作系统提供的命令如Finger和Ruser等收集信息,不断提高自己的攻击能力。这类攻击只要系统管理员提高警惕,将系统提供的缺省账户关掉或提醒无口令用户增加口令一般都能克服。
9、偷取特权
利用各种特洛伊木马程序、后门程序和黑客自己编写的导致缓冲区溢出的程序进行攻击,前者可使黑客非法获得对用户机器的完全控制权,后者可使黑客获得超级用户的权限,从而拥有对整个 *** 的绝对控制权。这种攻击手段,一旦奏效,危害性极大。
10、端口攻击
如果是基于Windows 95/NT的操作系统,而且没有安装过Patch,那么就极易受到攻击,这个漏洞是由OOB引起的,OOB是Out Of Band的缩写,是TCP/IP的一种传输模式。攻击的原理是以OOB方式通过TCP/IP端口139向对端的Windows 95/NT传送0byte的数据包,这种攻击会使计算机处于瘫痪状态,无法再工作。在windows98 OSR2版本和WindowsNT 4.0 Service Pack5中微软公司已更正了该错误。
我们常用的端口是:21(FTP)、23(Telnet)、25(Mail)、70(Gopher)、80(Http),针对端口最快速的攻击 *** 是基于Telnet协议。Telnet可以快速判断某特定端口是否打开以及服务器是否运行;还有黑客利用Telnet来进行服务器拒绝式攻击,例如,向WindowsNT Web服务器的所有端口发送垃圾数据会导致目标处理器资源消耗高达100%,向其他端口发送Telnet请求也可能导致主机挂起或崩溃,尤其是向端口135发送Telnet连接请求时。防范的 *** ,如果不是非常必要,关闭Telnet端口。
一般用户不要裸机,一定要用个360之类的杀软保护电脑"
*** 攻击的几种类型
*** 攻击(Cyber
Attacks,也称赛博攻击)是指针对计算机信息系统、基础设施、计算机 *** 或个人计算机设备的,任何类型的进攻动作。对于 计算机 和计算机 *** 来说,破坏、揭露、修改、使软件或服务失去功能、在没有得到授权的情况下偷取或访问任何一计算机的数据,都会被视为于计算机和计算机 *** 中的攻击。
*** 攻击的种类
1、主动攻击
主动攻击会导致某些数据流的篡改和虚假数据流的产生。这类攻击可分为篡改、伪造消息数据和终端(拒绝服务)。
(1)篡改消息
篡改消息是指一个合法消息的某些部分被改变、删除,消息被延迟或改变顺序,通常用以产生一个未授权的效果。如修改传输消息中的数据,将“允许甲执行操作”改为“允许乙执行操作”。
(2)伪造
伪造指的是某个实体(人或系统)发出含有其他实体身份信息的数据信息,假扮成其他实体,从而以欺骗方式获取一些合法用户的权利和特权。
(3)拒绝服务
拒绝服务即常说的DoS(Deny of Service),会导致对通讯设备正常使用或管理被无条件地中断。通常是对整个 *** 实施破坏,以达到降低性能、终端服务的目的。这种攻击也可能有一个特定的目标,如到某一特定目的地(如安全审计服务)的所有数据包都被阻止。
2、被动攻击
被动攻击中攻击者不对数据信息做任何修改,截取/窃听是指在未经用户同意和认可的情况下攻击者获得了信息或相关数据。通常包括窃听、流量分析、破解弱加密的数据流等攻击方式。
(1)流量分析
流量分析攻击方式适用于一些特殊场合,例如敏感信息都是保密的,攻击者虽然从截获的消息中无法的到消息的真实内容,但攻击者还能通过观察这些数据报的模式,分析确定出通信双方的位置、通信的次数及消息的长度,获知相关的敏感信息,这种攻击方式称为流量分析。
(2)窃听
窃听是最常用的手段。应用最广泛的局域网上的数据传送是基于广播方式进行的,这就使一台主机有可能受到本子网上传送的所有信息。而计算机的网卡工作在杂收模式时,它就可以将 *** 上传送的所有信息传送到上层,以供进一步分析。如果没有采取加密措施,通过协议分析,可以完全掌握通信的全部内容,窃听还可以用无限截获方式得到信息,通过高灵敏接受装置接收 *** 站点辐射的电磁波或 *** 连接设备辐射的电磁波,通过对电磁信号的分析恢复原数据信号从而获得 *** 信息。尽管有时数据信息不能通过电磁信号全部恢复,但可能得到极有价值的情报。
由于被动攻击不会对被攻击的信息做任何修改,留下痕迹很好,或者根本不留下痕迹,因而非常难以检测,所以抗击这类攻击的重点在于预防,具体措施包括虚拟专用网VPN,采用加密技术保护信息以及使用交换式 *** 设备等。被动攻击不易被发现,因而常常是主动攻击的前奏。
被动攻击虽然难以检测,但可采取措施有效地预防,而要有效地防止攻击是十分困难的,开销太大,抗击主动攻击的主要技术手段是检测,以及从攻击造成的破坏中及时地恢复。检测同时还具有某种威慑效应,在一定程度上也能起到防止攻击的作用。具体措施包括自动审计、入侵检测和完整性恢复等。
攻击的 *** 主要有:
[if !supportLists]· [endif]口令入侵
[if !supportLists]· [endif]特洛伊木马
[if !supportLists]· [endif]WWW欺骗
[if !supportLists]· [endif]电子邮件
[if !supportLists]· [endif]节点攻击
[if !supportLists]· [endif] *** 监听
[if !supportLists]· [endif]黑客软件
[if !supportLists]· [endif]安全漏洞
[if !supportLists]· [endif]端口扫描
如何避免 *** 攻击呢,之一种是同源检测的 ***
服务器根据 http 请求头中 origin 或者referer 信息来判断请 求是否为允许访问的站点,从而对请求进行过滤。当 origin 或者 referer 信息都不存在的 时候,直接阻止。这种方式的缺点是有些情况下referer 可以被伪造。还有就是我们这种 *** 同时把搜索引擎的链接也给屏蔽了,所以一般网站会允许搜索引擎的页面请求,但是相应的页面 请求这种请求方式也可能被攻击者给利用。
第二种 *** 是使用 CSRF Token 来进行验证
服务器向用户返回一个随机数 Token ,当网站 再次发起请求时,在请求参数中加入服务器端返回的 token ,然后服务器对这个 token 进行 验证。这种 *** 解决了使用 cookie 单一验证方式时,可能会被冒用的问题,但是这种 *** 存在一个缺点就是,我们需要给网站中的所有请求都添加上这个 token,操作比较繁琐。还有一 个问题是一般不会只有一台网站服务器,如果我们的请求经过负载平衡转移到了其他的服务器,但是这个服务器的 session 中没有保留这个 token 的话,就没有办法验证了。这种情况我们可以通过改变 token 的构建方式来解决。
第三种方式使用双重 Cookie 验证的办法
服务器在用户访问网站页面时,向请求域名注入一个 Cookie,内容为随机字符串,然后当用户再次向服务器发送请求的时候,从cookie 中取出 这个字符串,添加到 URL 参数中,然后服务器通过对 cookie 中的数据和参数中的数据进行比 较,来进行验证。使用这种方式是利用了攻击者只能利用 cookie,但是不能访问获取 cookie 的特点。并且这种 *** 比 CSRF Token 的 *** 更加方便,并且不涉及到分布式访问的问题。这 种 *** 的缺点是如果网站存在 XSS 漏洞的,那么这种方式会失效。同时这种方式不能做到子域 名的隔离。
第四种方式Samesite Cookie
是使用在设置 cookie 属性的时候设置 Samesite限制 cookie 不能作为被第三 方使用,从而可以避免被攻击者利用。Samesite 一共有两种模式,一种是严格模式,在严格模式下 cookie 在任何情况下都不可能作为第三方 Cookie 使用,在宽松模式下,cookie 可以 被请求是 GET 请求,且会发生页面跳转的请求所使用。
Samesite Cookie 表示同站 cookie,避免 cookie 被第三方所利用。将 Samesite 设为 strict ,这种称为严格模式,表示这个 cookie 在任何情况下都不可能作 为第三方 cookie。将 Samesite 设为 Lax ,这种模式称为宽松模式,如果这个请求是个 GET 请求,并且这个请求改变了当前页面或者打开了新的页面,那么这个 cookie 可以作为第三方 cookie,其余情 况下都不能作为第三方 cookie。
使用这种 *** 的缺点是,因为它不支持子域,所以子域没有办法与主域共享登录信息,每次转入子域的网站,都回重新登录。还有一个问题就是它的兼容性不够好。
某网站流程突然激增,访问该网站响应慢是什么攻击
一是当DNS服务器设置错误,无法进行域名解释,当然不能打开网页了;
二是由于病毒引起的(比如:病毒感染了IE浏览器或者CPU占用率过高);
三是系统文件丢失导致IE不能正常启动(如系统不稳定、软硬件的冲突)。
扩展资料:
解决 *** :
1、打开电脑上的浏览器,点击右上方的三条横线标志。
2、在弹出来的窗口中,点击“工具”。
3、进入工具选项中,点击“清除上网痕迹”。
4、然后勾选你要清除的内容,然后点击“清除”。
5、如果想清除部分数据的话,点击“全部”这个选项,选择时间。
6、清理过后,系统上会显示“清除完毕”这个字眼,就代表已经清理干净了。
0条大神的评论