web安全之XSS、 CSRF攻击原理和防范以及HTTPS
2019-06-01 本文已影响0人
饥人谷_阿银
1.什么是 XSS 攻击?使用eval 有什么问题?如何防范 XSS 攻击?
回答:
什么是xss攻击:
攻击者通过篡改网页,嵌入恶意js代码,当用户访问网页时,被嵌入的js代码会被执行,从而达到恶意攻击用户的一种方式
使用eval 有什么问题:
1、安全问题。因为它的动态执行特性,给被求值的字符串赋予了太大的权力,如果通过http传过来的是一段恶意的字符串,那么浏览器也会当做是js语句来执行,会造成一定的风险
2、降低性能
如何防范 XSS 攻击:
1、对输入的字符串做长度限制
2、对用户的输入进行过滤,如对& < > " ' /等进行转义;
3、获取用户的输入,不用innerHtml,用innerText.
2.CSRF 攻击的原理是什么?如何防范?
回答:
CSRF攻击的原理:
跨站请求伪造,攻击者构造某个网站后台接口的请求地址,诱导用户去点击或者用特殊的方法让 该请求地址自动加载,用户在登陆的情况下,这个请求被服务器端接收后误以为是用户合法的操作,
对于get形式的接口跨域轻易被攻击,对于psot形式的接口也不是100%安全,攻击者可诱导用户带from表单可用post形式提交参数的页面
如何防范:
1、验证 HTTP Referer 字段
2、在请求地址中添加 token 并验证
3、在 HTTP 头中自定义属性并验证
3.Https 是如何保证安全的?
回答:
通过证书获得网站服务器的公钥。证书由CA机构加密后提供,并且受上层CA背书,上层CA机构往往还有更上层CA认证,最终有个根CA,由此保证该公钥为网站服务器的真正公钥。
浏览器得到公钥后生成对称加密AES秘钥,发送请求时AES加密数据,将AES秘钥用网站公钥加密后传输给服务器。
服务器用私钥解开数据得到浏览器AES秘钥,并用该秘钥解开得到浏览器发送的原始数据。
以后服务器和浏览器就用只有他们知道的AES对称秘钥加密数据交流,这样即使泄露第三方也无法解密。