之前走过的坑,再次梳理一下
XSS跨站脚本攻击
这是最常见的网络攻击案例,基本是防不胜防,首先说下XSS攻击网络原理,跨站脚本攻击。
XSS是常见的Web攻击技术之一.所谓的跨站脚本攻击指得是:恶意攻击者往Web页面里注入恶意Script代码,用户浏览这些网页时,就会执行其中的恶意代码,可对用户进行盗取cookie信息、会话劫持等各种攻击。
很多小伙伴在此处存在疑问,我的代码没有让攻击者上传代码他是如何篡改的我的页面呢?给一个简单的操作场景:
在创建用户的时候攻击者A在用户名的输入框中输入一下内容
< SC RIPT SRC='xxxxxxxx'></S CR I P T>
当然script的标签不会如此的明显也许是 SCRipt 、 IMG 、ifream标签等等,此时前后端如果缺乏相关输入控制,那么就恭喜你了,你的网站会很轻易的被带有恶意的小伙伴控制。
前端控制
结合一些行业大牛,和自己的一些亲身经历给出以下几点尽量避免被黑入
(1)一定要过滤用户的输入信息 禁止用户在输入的过程中输入"<",">","引号","$","_",这个为什么因该不需要我解释,网上大牛们说的很清楚,当然根据原理,你也能推测出来
(2)核心的用户身份标示或token保存在Cookie中,Cookie中一定要加“HTTPOnly”在结尾,保证只有在html操作时才能将cookie中的内容发送出去,在JS中无法获得用户的Cookie信息
后端规避策略
(1)htmlentities()和htmlspecialchars()目前我遇见的系统中都会加,一般写到了公共方法或者是第三方框架自带了当然对于相当坑的express就需要自己写了(或使用entities模块)
(2)目前来说最有效的方式,也是各个网站都会使用到的,就是处理跨站连接,再高级的用法就是增加黑白名单,对于小网站我建议对于站外的地址链接直接屏蔽掉就好,或者留下当前域名与静态资源引用的连接,剩下的都过滤掉。
CSRF网络攻击
不得不说CSRF攻击是最令开发者头疼的攻击,同时随着网络与浏览器的升级进步,这种攻击方式越来越少见,出现这种漏洞的信息系统,大佬们可以改版下前端页面的核心信息的存储方式,下面先,简单说下原理
CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。
简单的说就是通过http请求将用户的本地Cookie发送至不怀好一的用户机上这样用户的验证信息就被一览无余了,目前规避这种网络攻击的最有效方式是减少在cookie 中存储客户核心内容比如用户的token、ID、access_token等,将和信息存在前端的storage中,对于认为使用session就万无一失的大佬们同样要注意,使用session并不能避免CSRF,只要完全的依赖cookie和session来进行用户校验的系统都可以轻松被CSRF攻破
都是手马的,有点累,下次再写,希望大佬们即使指正错误小弟虚心学习,如果各位大佬不嫌弃,请给个小心心鼓励下,谢谢大佬们
网友评论