前端程序员必须知道的 Web 漏洞,快来看看

前端程序员必须知道的 Web 漏洞,快来看看,第1张

随着互联网的发展,早已经不是仅限于简单的网页或是社交,电商购物、银行转账、企业管理等等。上次看到一个新闻,后台程序员离职后,利用职位之便,每天还不断的给自己转账,转了好多次才被发现,想想这多可怕。或者会窃取重要的商业信息,所以 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 地址后面加参数。

直接采用这种方式传输数据,如果数据被劫持或抓包工具偷走之后,就会直接被人盗取走,特别危险。若是采用接口加密,如下:

上边那个看不懂的一长串符号,正是经过加密的数据。

接口加密就是将接口请求调用中传递的参数进行加密,目的就是为了保证接口请求中传递参数和返回的结果的安全性,一般比较敏感数据,如身份z、电话号码、账号、密码等需要进行加密。

常见的加密方式:

加密方式较多,可以根据自己具体的需要和项目语言选择其中一种。

加密之后的数据更安全,那我们能不能将接口所有的数据都进行加密呢?加密是非常消耗资源的,如果有大批量的数据都进行加密时,返回数据需要的时间就更长,会直接影响用户体验。所以我们进行加密时,只需要对敏感的重要的信息进行加密。

好了我今天的文章就到此结束了,本篇文章没有介绍到的 web 安全,欢迎评论区交流!

问题一:黑客怎么寻找网站漏洞,麻烦说一下! 拿站这技术活得靠点经验,我简单说下吧(我是菜鸟)。之前,很多网站一恭存在注入漏洞,就像一楼那样说的,很多菜菜都是用啊D,明小子等软件(本人绝无看不起软件作者之意,打心底佩服前辈们),但是现在随着国家发展强大,人民的生活水平提高,很多管理员动不动就装个防注系统(绕过防注这里我不说),以前 *** 起工具就日下一大堆站的日子一去不复返了。有些管理员粗心,导致出现上传漏洞,虽然过滤很严,但是这样的漏洞一般比较致命,或者人家防火墙很厉害,马儿进一匹死一匹,这种漏洞一般是通过扫描出来的。也有一些管理员没有改密码,通过弱口令直接进去后台,还有一些后台页面直接爆出密码(很久了),还有就是爆库,数据库被爆出来~很多很多,说不完~望楼主采纳。

问题二:黑客是如何发现系统漏洞的,系统为什么会有漏洞? 不要为难微软,毕竟微软写WINDOWS的家伙们也都是人,虽然不是中国人。

只要是人做出来的东西,就没有完美的,所以有问题也不奇怪。

这就好像一个打字员打了一篇稿子,打字员本身发现错字的可能性很小,倒是别人一眼就可以看到打字员打错的字。

虽然不知道这是为什么,但真的是这样。(以前我打字的时候就发现不到自己的错字)

至于你的问题,微软当初在编写系统的时候为什么不知道有漏洞?

回答:很多所谓的漏洞都不算是漏洞,都是正常的数据值,所以不容易被发现。

举个例子,在检测一些ASP网站的时候,会用到1=1 OR 1=2 之类的语句,

这本身是ASP的一种正常的程序语句,但是到了黑客手中,就成了检测ASP网站的重要检查项目,

黑客会根据检测网站返回的数据值,而得到大量的信息。

有的黑客可以自己发现漏洞,他们是靠什么技术发现的?

回答:说实话,这个问题我个人觉得问题很好。

黑客一词,在以前的时候,是用来形容懂得计算机编程,拥供很好的计算机技术并且热心于钻研计算机技术的人

对于这种人,发现一些漏洞也是很正常的,就好像WIN2000的输入法漏洞,就是中国人发现的。

其实只要你用某种系统习惯了,也会发现很多漏洞。比如XP,现在盗版的XP漏洞很多,只要你细心点,

你就会发现很多的XP漏洞。

问题三:如何看一个网站有没有漏洞、有什么漏洞? 没有一定足够的程序能力没有一定的网络安全经验你是无法胆接判断的,

对于这些初级菜鸟,只能借助检测工具来初略判断。

问题四:黑客是怎么样去攻击网站的,漏洞是怎么发现的? 网上所谓黑客入侵某某网站,都是根据目前公开的漏洞或者根据别人发掘的漏洞进行入侵的,入侵了后台就把木马后门上传服务器内,实现控制目的,黑客攻击网站主要是发送大量数据包,让网站不能正常访问等,本人收徒,学会再收费!

问题五:如何扫描网站的漏洞? 需要确定他使用的服务器版本,还需要了解他的安全措施。他开了定0端口,至少可以D。O。S。PS:小心触犯法律!

问题六:怎样才能找到网站漏洞 怎么说那 是没有检测出来漏洞 才导致的

网站作了很好的硬件防火墙

没办法拉

这可是不道德的 注意

问题七:入侵网站的漏洞是怎么生成的? 为什么会有漏洞呢、谢谢了,大神帮忙啊 你好。楼主,关于你的这个问题很高兴我来替你回答 所有网站和软件的一般刚刚开始的时候是没有多大问题的漏洞的,一般程序员在设定软件的时候都是把软件和网站分成模块来做的,分为模块1 或者模块ABCD 这样来的,每个软件和网站都有后门的,因为这样方便程序员测试网站,和所有的黑客一样,入侵网站都是先找后门,利用后门程序向你的服务器发送大量邮件,这就是垃圾信息邮件攻击法,让你的服务器被信息撑爆,卡死,甚至瘫痪,第2种就是特洛伊木马,向你的服务器发送邮件,并带上木马程序,只要你运行了邮件中的附带件,那么,木马就会潜入你的服务器程序,在你不知不觉中得到他想要的信息,第3种就是直接发送网络炸d到你的 服务器使你的服务器瘫痪死机,这种方法 很不人道,所以一半人不会用这种!其实漏洞就是所谓的后门,所有软件和网站的后门都是程序员留着的。这样也并不是说他们有什么不良企图,而是方便他们日后对软件或者网站进行测试,修改,所以一般的程序员都会把这后门留着,后门如果被有不良企图的人知道了,那么就成了所谓的漏洞了。 如果楼主对我的回答还满意的话,可以用五星来采为满意答案

问题八:网站怎样样检查漏洞 您好,现在一般是使用站长工具,我现在用了百度站长工具,如果网站有问题,系统会提示的,而且可以使用漏洞检查软件或在线工具直接可以检测,还有就是如果是大型网站可以考虑做加密,加强网站的安全性能。工具您可以百度看看。

问题九:网络怎么学习找漏洞。 这是我在网上看到的,希望对楼住有所帮助一 如何寻找漏洞

这个是大家最关心的。大家寻找漏洞只能寻找能读到源代码码的,没有源代码但有注入漏洞的系统只能猜,具有特殊性。网上很多主机用的是成品,它的系统源代码可以从网上下到。至于如何判断主机用的是哪个系统,就需要大家有一定的积累了。这也没法用语言描述,我举个简单的例子。

以动网6为例,看到某个论坛界面酷似动网,9成是动网论坛,再看看下面的版本就知道是动网6了。这个时候就可以去Chinaz下个动网6来读一下,不会ASP的就没办法了。当然漏洞早就公布,我只是告诉大家如何判断主机用哪个WEB系统。

漏洞是如何被发现的呢?其实也没什么诀窍,主要是扎实的基础知识,要是连HTTP协议不懂,不会抓包,也别找漏洞了,找到也不会用,这样最好先补基础知识。有了基础知识,剩下的就是毅力和耐心。论能力,现在好多系统漏洞,张三找的到,李四也找的到。

主要是看谁先找,谁下的工夫深。有的漏洞读一遍源码是找不到的。

找漏洞的过程也是熟悉这个WEB系统的过程,首先要了解它的数据库结构,这是最基本的。接下来就得一个文件一个文件的读。先读不需要权限的。

有的页面开头就来个SESSION判断,就算下面有漏洞都没用。

找漏洞的过程其实就是一个文件一个文件读的过程。下面以一个页面为例。首先把握系统流程。所谓系统的流程就是系统到底如何执行。一般系统为 开头――中间――结尾 模式。开头一般是输出HTML中之间内容,对我们找漏洞没有影响。

一般文件开头都会包含很多头文件,大家看了感到头晕,其实头文件都没什么用。主要是数据库连接文件,全局配置文件,和函数库。我们大可不理会这些东西,再找漏洞时用到了回头再看也不迟。

但是函数库里面关于输入串过滤的函数要重点看一下。

结尾是输出系统版权信息,有的用到SQL查询,不过这里用处也不大,我们可以很粗略的看一下。

中间部分是我们重点关注的地方。其次重点关注输入变量。因为这些变量是我们控制的,没有外来输入变量也不用谈注入了。

大家要有这样一种概念,不管是GET,POST,还是COOKIE方法,只有是从用户提交的变量都可以由我们指定,我们想让它是多少就是多少。

至于系统取得变量后做了什么过滤是另外一回事。

在输入变量中要重点关注能参与SQL执行的变量,有的变量比如action或者page都是控制流程的,根本就没用,就算改了值也没什么意思。再者就要深刻了解数据库了,没有对数据库全面的把握,很可能错失很多注入点,这也是高手和菜鸟最大的差别所在。

我们常见的数据库有Access、Mysql和SQLServer,至少要对他们有很深的了解才能找出漏洞。二 分三个方面并举实例讲解注入点的寻找及利用

1 注入点很容易发现,利用也很简单

这种漏洞相信已经很少了,除非程序作者根本就不关心程序的安全才会有此漏洞。以前经典的 ' or '1=1就属于此类

典型的类似(模型,以下类同)

select * from tablename where user='request(user)',

select * from tablename where id=request(id)

有的程序对这些变量做了过滤,但不全,也可以归结为这一类。

相信这样的漏洞大家都能发现而且也很容易利用,更不用说防范了。这种漏洞容易找,也很少。我给大家截了几个有漏洞的......>>

问题十:如何发现网站的漏洞啊?我是好人 你这个问题问题有点没人敢答

这不是一个问题而是一万个为什么...

就像 我问你:如何做一桌子好吃的菜?

你说呢?

最真实的回答就是 你要去学,学什么呢?就像别说一桌子菜

就算一道菜.

你要从选料 ,配料,加工,到炒制,甚至大厨还要学色彩搭配以及雕刻艺术

再深入的甚至要学比如豆子的生长过程,营养成分,以及地区差异

才能选出自己想要的好豆子...

那如何发现网站漏洞??????

那你就得从程序入手,为什么会存在漏洞,存在漏洞的基础条件

asp,php,net,c++.....等等程序代码与服务器系统的关系

myssql,sql与系统的关系

等等 各种基础要素理解透彻之后

才可以有利于你发现漏洞

再然后才是根据这些缺点 弊端 去弥补漏洞 做到所谓的安全贡献

另外 你也说你是个好人,是一个互联网相关的好人

说明你对互联网有一定的了解

我认为你不是在指望这里一问一答的...就能学会一门多年磨练才能有手艺吧???

更何况是技术含量的

先祝你成功吧

您的采纳 是咱互助的动力源泉,理解万岁


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11324987.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存