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

又是十几道web安全面试题

时间:2023-03-18 14:10:33 科技观察

从胡子的长度和忧郁的眼神看得出,坐在我前面的面试官应该有点东西。浑身透着玩过CTF的气场。像往常一样,我将花3分钟时间做自我介绍。这期间,面试官面无表情但耐心地听我比利巴拉。我按照原计划成功介绍(吹)了我的项目经验。面试官微笑着看着我说:你觉得你最擅长的是什么?(我淡淡回应:虽然我是前端工程师,但我对网络安全很感兴趣。)0.你知道CIA三元组吗?Confidentiality,Integrity,andAvailability(这三件事一定要回答的干干净净,不用想)1.XSS攻击是怎么发生的?黑客将恶意JavaScript脚本插入您的浏览器以窃取您的私人信息并以您的身份进行操作。这是一种XSS攻击(Cross-SiteScripting,跨站脚本攻击),因为浏览器无法区分脚本是恶意注入的还是正常的内容,就会执行,而且HTML非常灵活,可以随时修改。2、你知道XSS的种类吗?(送分题)ReflectiveXSS(也叫非持久型)DOM-basedXSSStoredXSS(也叫持久型XSS)3.说说它们的实现原理Reflective:顾名思义,恶意JavaScript脚本由用户发送到网站请求的一部分,然后网站将这部分返回给用户,在页面上执行恶意脚本。一般发生在前后端一体的应用中,服务端逻辑会改变最终的网页代码。DOM-based:目前比较流行前后端分离的项目,反射型XSS没用。但是这种攻击不需要经过服务器。我们知道网页本身的JavaScript也可以改变HTML。黑客使用它来插入恶意脚本。存储型:又称持久型XSS,顾名思义,黑客将恶意JavaScript脚本长期存储在服务器数据库中。一旦用户访问相关页面数据,恶意脚本就会被执行。常见于搜索、微博、社区贴吧评论等。4.说说它们的区别。URL中存在反射型XSS恶意脚本,数据库中存在存储型XSS恶意代码。在基于DOM的XSS攻击中,恶意代码的移除和执行是由浏览器完成的,这是前端JavaScript本身的安全漏洞,另外两类XSS是服务端的安全漏洞。(面试官微微抬头,递给我一张纸。)5.再画一张图解释(好吧,我给你来一波降维讲解)反射型是基于DOM存储类型的(面试官:男孩画得很好)6.黑客可以用XSS攻击做什么?窃取用户cookies未授权操作修改DOM翻转窗口广告发起XSS蠕虫攻击劫持用户行为并进一步渗透内网(...太多了)7.如何防范XSS攻击?所有用户输入都是不可信任的,并且在输出时进行验证。对HTML元素内容、属性、URL请求参数和CSS值进行编码。当编码影响业务时,使用白名单规则进行检测和过滤。使用W3C提出的CSP(ContentSecurityPolicy,ContentSecurityPolicy),定义域名白名单,设置Cookie8的HttpOnly属性。知道有哪些XSS攻击案例,我简单说一下(没想到你会还是喜欢听新闻)XSS蠕虫攻击。SamyKamkar的蠕虫在短短几个小时内感染了100万用户——它在每个用户的自我介绍后添加了一句话:“但最重要的是,Samy是我的英雄。”(Samy是我的偶像)。这是Web安全史上第一个重量级的XSSWorm,具有里程碑意义。2007年12月,百度空间遭到蠕虫病毒攻击,垃圾邮件开始在用户间转发。QQ邮箱m.exmail.qq.com域名被发现存在反射型XSS漏洞。2011年,新浪微博遭到XSS黑客攻击。黑客诱使用户点击诱饵链接,自动发送带有相同诱饵链接的微博。攻击范围逐层扩大,也是蠕虫攻击的一种。9.什么是CSRF攻击?CSRF的英文全称是Cross-siterequestforgery,也称为“跨站请求伪造”。顾名思义,CSRF攻击就是黑客引诱用户打开黑客网站,利用用户的登录状态发起跨站请求。降维解释:攻击者诱导受害者进入第三方网站,并在第三方网站中,向被攻击网站发送跨站请求。利用受害者在被攻击网站上获得的注册凭证绕过后台用户验证,达到冒充用户在被攻击网站上进行某些操作的目的。10.如何实现CSRF攻击?最容易实现的是Get请求。一般进入黑客网站后,可以通过设置img的src属性自动发起请求。在黑客网站中,构造一个隐藏表单自动发起Post请求。通过一个链接诱使用户点击触发请求,使用一个标签的href。【点击下载美女视频】()11、CSRF攻击和XSS攻击有什么区别?CSRF攻击不需要向用户页面注入恶意代码,只需要利用服务器的漏洞和用户的登录状态来进行攻击。CSRF攻击的成本也低于XSS。用户每天访问大量网页,无法确认每个网页的合法性。从用户的角度来看,不可能完全防止CSRF攻击。12.如何防止CSRF攻击?根据实际情况,设置关键cookie的SameSite属性为Strict或Lax。服务器验证请求源站点(Referer、Origin)是否使用CSRFToken,服务器随机生成返回给浏览器的Token。每个请求都会携带不同的CSRFToken来加入Secondaryverification(独立支付密码)13、你对Web密码学了解多少?对称加密算法对称加密算法使用相同的密钥进行加密和解密。简单常见的经典对称加密算法有DES、AES(AES-128)、IDEA、国密SM1、国密SM4非对称加密算法非对称加密即加密和解密使用不同的密钥。发送方用公钥加密信息,接收方收到密文后用私钥解密。主要解决密钥分发的问题。我们常说的签名就是私钥加密。常见的经典非对称加密算法有RSA、ECC和国密SM2哈希算法。不可逆性、稳健性和唯一性。MD5、SHA(SHA-256)、使用国米SM3时记得加盐AES是目前世界上公认的密码算法,只要算力不突破,这个算法在可预见的未来都是安全的.ECC是目前世界上加密强度最高的非对称加密算法。MD5和SHA的唯一性已经被破解,但在大多数场景下,不会造成安全问题。通常,SHA-256加盐足以满足大多数使用场景。14.简单说说HTTPS的实现原理。客户端发送random1+对称密码套件列表+非对称密码套件列表。Server收到信息,选择对称密码组+非对称密码组,连同random2+证书一起返回给Client(公钥在证书中)验证证书的有效性,使用random1+random2生成pre-master。用服务器公钥+浏览器确认加密后发送给Server。收到pre-master后,根据约定的加密算法-secret生成random1+random2+pre-master(解密)的master,然后发送给server确认client收到了相同的master-secert,传输对称加密密钥(基本操作,不是6)HTTPS在TCP和HTTP之间增加了SSL/TLS安全层。对HTTP请求的数据进行加密,对接收到的HTTP内容进行解密。使用对称加密对传输数据进行加密,使用非对称加密传输密钥,既可以解决传输效率的问题,又可以保证两端数据的安全传输。另外,为了能够证明服务器的可靠性,引入了数字证书,让浏览器验证证书的可靠性。面试官拿起身边冰凉的乌龙茶,喝了一口。(男孩,某事)