前端防黑客(前端黑客技术)
本文目录一览:
- 1、活体检测前端防hack检测失败
- 2、遭遇黑客,程序员,前端人员获取个人信息泄密问题你看该怎么解决?
- 3、Web前端密码加密是否有意义
- 4、Web前端新手应该如何防御XSS攻击
- 5、网站被黑客扫描撞库该怎么应对防范?
- 6、黑客攻击防御工具有哪些?
活体检测前端防hack检测失败
完善3D建模漏洞。
避免面部表情建模破解活体检测。
一个人具有生物特征,包括人脸、指纹、虹膜、DNA等,这些特征在一起,可以确定我们的身份,但是当这些特征被各种传感器信息化提取后放到互联网上,就成了生物特征信息。生物特征信息能不能证明自己的身份,就要看这个提取过程是否安全,会不会被复制、伪造、合成?在网上使用人脸识别技术用于法定身份识别是不是经过对抗性分析?在网上使用人脸识别的过程中,面部信息被存留怎么办?采集的面部信息被盗取怎么办?2011年,csdn密码泄露(据说还有人人、天涯、开心网),结果全国网民纷纷改密码,如果有一天,我们的人脸库泄露了,我们该怎么办?换脸吗?信息安全行业对于任何新技术的应用都是慎之又慎的。
遭遇黑客,程序员,前端人员获取个人信息泄密问题你看该怎么解决?
这是一个安全问题,大致需要解决的是前端可能导致的权限被拉取(cookie跨域访问等),传输过程中的信息抓包(中间人攻击等),以及后端数据库被拖库(服务器被黑)
首先前端不要用cookie进行权限的管理,使用token的方式,有条件设计单独的token服务器。非分布式的可以使用session。
其次数据的交互应该走https或一定的加密规则,保证数据传输过程的安全性。
前端开发者发送数据的时候,重要的数据一定得post不能使用get,还可以进行一定的数据加密和校验规则。
最后后端接收并保存到数据库,重要数据和隐私数据是必然需要加密存储的,这里涉及到权限问题,加密的隐私数据与规则应该尽量保证只有用户才能查看,保证拖库后也无法直接获取用户信息。加密规则加盐规则保密。
Web前端密码加密是否有意义
密码在前端加密完全没有意义,对密码系统的安全性不会有任何提高,反而会引发不必要的麻烦。首先,做前端开发的人需要知道,前端系统的控制权是完全在用户手里的,也就是说,前端做什么事情,用户有完全的控制权。假设如同 @陈轩所说,前端做过了md5,后台就不用做了,这个做法会有什么后果?如果某一天,这个系统的数据库泄露了,黑客就直接拿到了每个用户的密码md5值,但此时,由于黑客知道密码是在前端进行哈希的,所以他不需要爆破出该md5对应的原文是什么,而是直接修改客户端向服务器发出的请求,把密码字段换成数据库中MD5就可以了,由于与数据库中记录一致,直接就会登录成功。这跟直接存储明文密码没有任何区别!!!所以不管前端是不是加密了密码,后台使用安全的哈希算法对内容再次转换是非常有必要的。(MD5可不行,要用bcrypt,我之前回答过一个类似的:随着显卡性能的高速发展,目前的快速Hash算法是否已经变得不够安全了?)这个回答还有一个人赞同,希望大家别被错误答案误导了。另外一个答案 @林鸿所说,在非安全HTTP连接上,可以防止原始密码被窃听。但问题在于由于你的登录系统接受的哈希过的密码,而不是原文,窃听者根本不需要原始密码,只要通过哈希结果就可以伪造请求登录系统。这样做只能防止被窃听到原文的密码被攻击者用在社会学攻击上,而不能改善该网站的安全性。所以不管前端是不是加密了密码,使用HTTPS安全连接进行登录都是非常有必要的。以上我说的两点,合起来看就是:不管前端是否加密了密码,都不能以此为假设,让后端设计的安全等级下降,否则就会有严重的安全问题。实际上,前端进行密码加密,可以看做帮助用户多进行了一次原文的转换,不管用了什么加密算法,算出来的结果都是密码原文,你该如何保护用户的原始密码,就该如何保护此处的加密结果,因为对你的登录系统来说,它们都是密码原文。以上这些,说明了密码加密是没有什么意义的,接下来,我要说明前端加密会带来什么问题。有些人会认为前端进行了加密,可以降低后台的安全性需求,这种错误的观念会造成系统的安全漏洞。实际上,你不能对前端做任何的假设,所有跟安全相关的技术,都必须应用在后台上。前端进行加密会造成页面需要js脚本才能运行,那么假设你的系统需要兼容不能运行js的客户端,就必须再设计一个使用原文的登录接口。由于前端是不是加密,所有安全机制都必须照常应用,所以为系统增加这样的复杂性是完全没必要的,即使传输明文密码,只要正确使用了HTTPS连接和服务器端安全的哈希算法,密码系统都可以是很安全的。
Web前端新手应该如何防御XSS攻击
今天小编要跟大家分享的文章是关于Web前端新手应该如何防御XSS攻击。作为JS系工程师接触最多的漏洞我想就是XSS漏洞了,然而并不是所有的同学对其都有一个清晰的认识。今天我们分享一下XSS漏洞攻击,希望能帮助到大家。下面我们来一起看一看吧!
一、什么是XSS攻击
XSS(Cross-SiteScripting)又称跨站脚本,XSS的重点不在于跨站点,而是在于脚本的执行。XSS是一种经常出现在Web应用程序中的计算机安全漏洞,是由于Web应用程序对用户的输入过滤不足而产生的。
常见的XSS攻击有三种:反射型、DOM-based型、存储型。其中反射型、DOM-based型可以归类为非持久型XSS攻击,存储型归类为持久型XSS攻击。
1、反射型
反射型XSS一般是攻击者通过特定手法(如电子邮件),诱使用户去访问一个包含恶意代码的URL,当受害者点击这些专门设计的链接的时候,恶意代码会直接在受害者主机上的浏览器执行。
对于访问者而言是一次性的,具体表现在我们把我们的恶意脚本通过URL的方式传递给了服务器,而服务器则只是不加处理的把脚本“反射”回访问者的浏览器而使访问者的浏览器执行相应的脚本。反射型XSS的触发有后端的参与,要避免反射性XSS,必须需要后端的协调,后端解析前端的数据时首先做相关的字串检测和转义处理。
此类XSS通常出现在网站的搜索栏、用户登录口等地方,常用来窃取客户端Cookies或进行钓鱼欺骗。
整个攻击过程大约如下:
2、DOM-based型
客户端的脚本程序可以动态地检查和修改页面内容,而不依赖于服务器端的数据。例如客户端如从URL中提取数据并在本地执行,如果用户在客户端输入的数据包含了恶意的JavaScript脚本,而这些脚本没有经过适当的过滤和消毒,那么应用程序就可能受到DOM-basedXSS攻击。需要特别注意以下的用户输入源document.URL、location.hash、location.search、document.referrer等。
整个攻击过程大约如下:
3、存储型
攻击者事先将恶意代码上传或储存到漏洞服务器中,只要受害者浏览包含此恶意代码的页面就会执行恶意代码。这就意味着只要访问了这个页面的访客,都有可能会执行这段恶意脚本,因此储存型XSS的危害会更大。
存储型XSS一般出现在网站留言、评论、博客日志等交互处,恶意脚本存储到客户端或者服务端的数据库中。
整个攻击过程大约如下:
二、XSS攻击的危害
XSS可以导致:
1、攻击劫持访问;
2、盗用cookie实现无密码登录;
3、配合csrf攻击完成恶意请求;
4、使用js或css破坏页面正常的结构与样式等;
三、防御方法
1、XSS防御之HTML编码
应用范围:将不可信数据放入到HTML标签内(例如div、span等)的时候进行HTML编码。
编码规则:将"'/转义为实体字符(或者十进制、十六进制)。
示例代码:
_unction_ncodeForHTML(str,_wargs){
__return(''+_tr)
___.replace(//g,'')
___.replace(/,'')__//_EC=_EX=_ntity=
___.replace(//g,'')
___.replace(/"/g,'"')
___.replace(/'/g,''')_//'_煌萍觯蛭辉_TML规范中
___.replace(/\//g,'/');
_};
HTML有三种编码表现方式:十进制、十六进制、命名实体。例如小于号(
2、XSS防御之HTMLAttribute编码
应用范围:将不可信数据放入HTML属性时(不含src、href、style和事件处理属性),进行HTMLAttribute编码
编码规则:除了字母数字字符以外,使用HH;(或者可用的命名实体)格式来转义ASCII值小于256所有的字符
示例代码:
_unction_ncodeForHTMLAttibute(str,_wargs){
__let_ncoded='';
__for(let_=0;____let_h=_ex=_tr[i];
___if(!/[A-Za-z0-9]/.test(str[i])_tr.charCodeAt(i)____hex=''+_h.charCodeAt(0).toString(16)+';';
___}
___encoded+=_ex;
__}
__return_ncoded;
_};
3、XSS防御之JavaScript编码
作用范围:将不可信数据放入事件处理属性、JavaScirpt值时进行JavaScript编码
编码规则:除字母数字字符外,请使用xHH格式转义ASCII码小于256的所有字符
示例代码:
_unction_ncodeForJavascript(str,_wargs)_
__let_ncoded='';
__for(let_=0;____let_c=_ex=_tr[i];
___if(!/[A-Za-z0-9]/.test(str[i])_tr.charCodeAt(i)____hex='\\x'+_c.charCodeAt().toString(16);
___}
___encoded+=_ex;
__}
__return_ncoded;
_};
4、XSS防御之URL编码
作用范围:将不可信数据作为URL参数值时需要对参数进行URL编码
编码规则:将参数值进行encodeURIComponent编码
示例代码:
_function_ncodeForURL(str,_wargs){
__return_ncodeURIComponent(str);
_};
5、XSS防御之CSS编码
作用范围:将不可信数据作为CSS时进行CSS编码
编码规则:除了字母数字字符以外,使用XXXXXX格式来转义ASCII值小于256的所有字符
示例代码:
_unction_ncodeForCSS(attr,_tr,_wargs){
__let_ncoded='';
__for(let_=0;____let_h=_tr.charAt(i);
___if(!ch.match(/[a-zA-Z0-9]/)_
____let_ex=_tr.charCodeAt(i).toString(16);
____let_ad='000000'.substr((hex.length));
____encoded+='\\'+_ad+_ex;
___}_lse_
____encoded+=_h;
___}
__}
__return_ncoded;
_};
后记
在任何时候用户的输入都是不可信的。对于HTTP参数,理论上都要进行验证,例如某个字段是枚举类型,其就不应该出现枚举以为的值;对于不可信数据的输出要进行相应的编码;此外httpOnly、CSP、X-XSS-Protection、SecureCookie等也可以起到有效的防护。
XSS漏洞有时比较难发现,所幸当下React、Vue等框架都从框架层面引入了XSS防御机制,一定程度上解放了我们的双手。
但是作为开发人员依然要了解XSS基本知识、于细节处避免制造XSS漏洞。框架是辅助,我们仍需以人为本,规范开发习惯,提高Web前端安全意识。
以上就是小编今天为大家分享的关于Web前端新手应该如何防御XSS攻击的文章,希望本篇文章能够对正在从事web前端工作的小伙伴们有所帮助。想要了解更多web前端相关知识记得关注北大青鸟web培训官网。最后祝愿小伙伴们工作顺利!
作者:公子
链接:#/a/1190000017057646
网站被黑客扫描撞库该怎么应对防范?
这个在安全圈子里叫撞库,即通过已有的账号密码到其它网站去尝试。
而针对撞库的防范是一个人机对抗的过程,需要通过一些手段来防止通过程序来扫描,但是这些手段也不能影响正常的用户体验,说说经常用到的一些方法:
最简单的方式就是增加一个图片验证码,当然对于现在图片验证码的破解程序也是越来越厉害,网上商业的开源的验证码破解工具一大堆,如果做图片验证码来防范的话,就要考虑一个问题,如何防止图片验证码被破解。对于防止验证码破解的话,可以适当增加验证码生成的强度,业内做的比较好的验证码,可以参考下淘宝的、百度贴吧的中文验证码也不错。
另外一种方式就是自动识别异常IP,如果机器扫描的话,肯定会有一些特征能被你抓取到,比如:单位时间内操作次数,比如1分钟尝试登录超过100次、正常用户不可能有这么大的频度的;1分钟内尝试登录错误账号超过一定次数;其它的自己扩展。对于异常的IP,整理一个非常严格的库,甚至直接禁止这些IP访问网站,一个一个手工添加肯定很累,程序对程序,应该没问题。黑客使用的代理再多,总归是有限的。
遇到专业的撞库,黑客黑掉了整个市的dhcp,分配了几十个1-254的c段来扫,每个IP仅仅尝试1-3次,这种低频度的撞库确实不好防护。在这里提出一个简单的思路,比如真的是这种的话,那么针对这个市的IP设计一个黑名单,单独的策略。
另外一种思路是用户账号被撞后的保护,比如判断下用户的登录IP,是否在常用的地区,如果不是,直接锁定账号,让用户通过手机、邮箱等手段来解锁,这方面做的比较好的可以参考腾讯和淘宝。
当然,这些策略结合起来的话,效果更好。
黑客攻击防御工具有哪些?
黑客若要对我们实施攻击,首先要找到我们的IP地址,否则无从下手。隐藏IP地址常用如下三法: 1、使用代理服务器(Proxy Server):若我们浏览网站、聊天、BBS等,这时留下网址是代理服务器的,而非我们的网址。 2、使用工具软件:Norton Internet Security 具有隐藏IP的功能,若您的电脑前端有路由器、IP共享功能的集线器,则此法无效,因NIS只能隐藏你电脑的IP地址。 3、对于局域网中的电脑,浏览器中的Proxy的地址应设为与Internet连接的那台电脑的地址。 以上措施一定程度上防范了入侵,但仍存在疏漏之处,黑客仍可利用端口扫描找到你的IP地址,更进一步的措施就是“端口防范”。 端口防范 黑客或病毒对您入侵时,要不断地扫描您的计算机端口,如果您安装了端口监视程序(比如Netwatch),该监视程序则会有警告提示。入侵者很可能连续频繁扫描端口以寻找时机,监视程序也会不断地提示您,令您不胜其烦,如果您遇到这种入侵,可用工具软件关闭不用的端口,比如,用“Norton Internet Security ”关闭不用的80和443端口,这两个端口提供HTTP服务,如果您不提供网页浏览服务,尽可 关闭;关闭25和110端口,这两个提供SMTP和POP3服务,不用时也应关闭,其他一些不用端口也可关闭。关闭了这些端口,无异于挡入侵者于大门之外。 在TCP/IP协议上,Windows是通过139端口与其他安装Windows系统的电脑进行连接,关闭此端口,可防范绝大多数的攻击。关闭步骤:[网络]→[配置]→[TCP/IP]→[属性]→[绑定]→[Microsoft网络客户端](把此项前面的“√”去掉,若无此项可不作变动)。 关闭共享和设置密码 若您的电脑非局域网中共享硬盘存取的电脑,可关闭全部硬盘和文件夹共享,步骤是:[网络]→[文件和打印机共享]→[允许其他用户访问我的文件]前面的“√”去掉即可;如若不能关闭所有硬盘或文件夹共享,则对共享的部分需设置只读与密码,步骤是:右键单击某[文件夹]→[共享…],需注意,由于Windows 9x与Windows Me的共享密码极易被破解,而Windows 2K与Windows XP的密码较安全,级您的操作系统是明智之举。 ActiveX控件与Java的防护 网页中ActiveX控件与Java Applets有较强的功能,而对其功能往往是未知的,一旦是恶意所为,破坏是相当大的,不得不防。IE对此也采取了慎重态度,提供了多种选择,具体设置步骤是:[工具]→[Internet选项]→[安全]→[自定义级别],建议您对不了解的网页的ActiveX控件与Java程序采取严防的态度。