当前位置: 首页 > 科技观察

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

时间:2023-03-18 13:01:20 科技观察

前端程序员必须知道的Web漏洞仅限于简单的网页或者社交、电商购物、银行转账、企业管理等。上次看到一则新闻,后台程序员离职后,他利用职务之便,每天不断给自己转钱,多次转账后才被发现。想想这有多可怕。或者会窃取重要的商业信息,所以Web安全也是非常值得注意的。什么是网络安全?黑客利用网络操作系统的漏洞和Web服务器的SQL注入漏洞,获取对Web服务器的控制权,从篡改、删除、添加数据,到窃取重要商业信息、转移资金等,不一而足。严重的是在网页中植入恶意代码,使网站受到意想不到的破坏。常见的攻击可以分为三类:XSS、CSRF和SQL注入。1、XSS攻击CrossSiteScripting跨站脚本攻击,为了与CSS区别,简称为XSS。恶意攻击将恶意脚本代码植入网页。当用户浏览网页时,会执行嵌入在网页中的脚本代码,从而达到攻击的效果。说白了就是恶意攻击者在输入框中添加恶意脚本代码,当用户浏览网页时执行脚本代码,从而达到恶意攻击用户的目的。1.1.XSS的危害盗用各种账号,然后对数据进行各种任意操作。控制企业数据,包括删除、添加、篡改敏感信息等。窃取具有商业价值的信息。强制发邮件获取验证码。控制受害者的机器对其他网站发起攻击。1.2.XSS攻击类型反射型XSS跨站脚本攻击请求时,url中会出现XSS代码,作为输入提交给服务器,服务器返回给浏览器,然后浏览器解析执行XSS代码。这个过程很像反射,所以称为反射式。此类攻击通常会将XSS攻击代码放入请求地址的数据传输部分,如:http://www.xxx.com?q=或者http://www.xxx.com?n=StoredXSS跨站脚本攻击提交的XSS代码会被存储在服务器端,这样作为数据库、内存、文件系统,下次请求目标页面时不会提交XSS代码。比如在留言板输入框添加脚本代码或者html、css代码,将代码转义,直接存入数据库。基于文档的XSS跨站脚本攻击基于文档的XSS攻击不经过服务器,而是充当中间人,在数据传输过程中劫持网络数据包,进而修改里面的html文档。1.3、XSS防御措施措施一:编码。此数据是html实体编码的。客户端和服务器端都需要转义编码。被转义为:放入上面的代码,还是会自动解析为上面的代码,所以放在外面。措施二:过滤。去掉用户上传的DOM属性,比如上面的onerror。删除用户上传的样式、脚本和iframe节点。//如

措施3:使用CSP浏览器中的内容安全策略来决定浏览器加载哪些资源。2.CSRF攻击Crosssiterequestforgery跨站请求伪造。攻击者诱导受害者进入第三方网站,向被攻击网站发送跨站请求,利用被攻击网站在被攻击网站获取的注册凭证绕过后台用户验证,冒充用户执行对被攻击网站的某些操作。CSRF攻击特点:没有cookie劫持,只是伪造受害者身份。攻击一般是针对第三方网站发起的,被攻击的网站无法阻止攻击的发生。跨站请求可以有多种方式,例如:图片url、超链接、CORS、表单提交。2.1.CSRF的危害在于社交网络,网站被劫持后,点击会自动跟随+分享。银行系统被攻击后,可以查询余额,也可以自动划转资金。电子商务系统如果受到攻击,可以添加、删除和清空购物车。2.2.CSRF的攻击类型GET类型攻击使用起来非常简单,只需要一个http请求。比如在页面上添加图片链接,以及iframe和script,是完成CSFR攻击最简单的方式,而且不易被用户发现,隐蔽性超强。由于get接口是最常见的CSRF攻击类型,所以很多重要的接口都不适用于get方法。使用post可以在一定程度上防止CSRF攻击。POST类型攻击这种类型的SCRF攻击通常使用自动提交的表单。简单的说,就是伪造一个自动提交的表单,一旦访问该页面,就会自动提交该表单。如:与前面两次攻击相比,这次攻击类型比较少见,链接类型攻击必须由用户点击链接触发。恶意链接通常嵌入在论坛发布的图片中,或者以广告的形式诱导用户点击。所以我们在邮箱里看到乱七八糟的广告,尽量不要点击,防止三方攻击。登录CSRF攻击方式是伪造的一种新型攻击方式。用户误以为自己在网站上正常登录,但实际上是用自己的帐号和密码登录到黑客网站,这样黑客就可以监控用户的所有操作,甚至可以知道用户的账户信息。2.3.CSRF防御措施措施一:检查http头中的referer信息。referer包含在请求头中,表示请求接口的页面来源。当服务器查看referer信息,发现是来自外域时,就可以拦截请求。通过阻止来自未知外部域的访问,可以在一定程度上减少攻击。措施二:使用一次性令牌使用一次性令牌进行身份识别。黑客无法通过跨域获得一次性令牌,因此服务器可以通过判断是否携带一次性令牌来排除一些非法的。操作员。措施三:使用验证图片在服务器端生成一些文字和数字,将这些信息保存在服务器端,以图片的形式在客户端显示,让用户合法填写信息。当CSRF攻击时,无法获取验证码,无法向服务器提供此信息时,匹配失败,从而识别为非法攻击者。这种应用很常见。之前登录时需要填写图形验证码。刷图验证现在也很普遍。3、SQL注入SQL注入一般发生在注册、评论、添加等,SQL注入只有在有用户输入的地方才有可能发生。SQL注入是一种常见的网络安全漏洞,攻击者利用它来访问或修改数据并利用潜在的数据库漏洞。所谓SQL注入,就是在Web表单中插入SQL命令,为域名或页面请求提交或输入查询字符串,最终诱使服务器执行恶意的SQL命令。具体来说,就是利用已有的应用程序将(恶意的)SQL命令注入后台数据库引擎执行的能力。数据库,而不是按照设计者的意图执行SQL语句。比如之前很多影视网站泄露的VIP会员密码,大多是通过WEB表单提交查询字符??。此类表单特别容易受到SQL注入攻击。3.1.SQL注入破坏任何账号都可以登录,可以进行任何操作说白了,随便来这里就可以了。3.2.SQL注入分类数值型注入当输入参数为整数时,可能存在数值型漏洞。字符注入当输入参数为字符串时,可能存在字符注入漏洞。数字注入和字符注入最大的区别是数字类型不需要用单引号括起来,而字符类型一般需要用单引号括起来。字符注入的关键是如何关闭SQL语句和注释冗余代码。其他类型其实我觉得SQL注入只有两种类型:数字型和字符型。很多人可能会说还有其他的比如:Cookie注入、POST注入、延迟注入等等。这是事实,但归根结底,这些类型的注入只是数字和字符注入的不同表现形式或不同的注入位置。以下是一些常见的注入名称:POST注入:注入字段在POST数据中Cookie注入:注入字段在cookie数据中延迟注入:使用数据库延迟特性注入搜索注入:注入站点是搜索base64injection:注入字符串需要进行base643.3加密。SQL注入的预防措施用户在任何地方输入,都要防止黑客攻击,永远不要相信用户的输入。因此,相应的防御措施包括:增加正则校验,使用正则表达式过滤传入参数。屏蔽敏感词。字符串过滤。4.接口加密后前后端分离后,前端每天都会接触到很多接口。发送网络请求时,有些接口使用get方法。最常见的传参方式是直接在url地址后面加参数。https://www.so.com/s?q='Web前端'直接使用这种方式传输数据。如果数据被抓包工具劫持或窃取,直接被窃取,尤其危险。如果使用接口加密,则如下://百度关键字搜索示例//接口使用get方法https://www.so.com/s?q=get%E4%BC%A0%E5%8F%82%E6%96%B9%E5%BC%8F&src=srp_suggst_revise&fr=se7_newtab_big&psid=014cd859f04a9ba923802a92f6821d44&eci=&nlpv=base_yc_52上面那一长串看不懂的符号正是加密数据。接口加密就是对接口请求调用传递的参数进行加密。目的是为了保证接口请求中传递的参数和返回结果的安全性。通常需要对身份证、电话号码、帐号、密码等敏感数据进行加密。.常用的加密方式:md5加密、base64加密、RSA加密、对称加密算法、bcryptjs加密方式,您可以根据自己的具体需求和项目语言选择其中一种。加密后的数据更安全,那我们能不能把界面上的所有数据都加密呢?加密非常耗费资源。如果大量数据被加密,返回数据的时间会变长,直接影响用户体验。所以我们在加密的时候,只需要加密敏感重要的信息即可。