面试加分必看,11道接口安全测试面试题!

全网最细,接口+接口自动化测试面试题汇总(附回答) 1、我们测试的接口属于哪一类?通常都是B/S架构,由客户端调用,或模拟客户端调用服务器提供的请求接口,由服务器完成处理并返回一个应答的过程。例如 webservice接口 http接口 jms接口 hessian接口2、HTTP接口传递数据最常用的方式?get和post最常用。get是从服务器上获取数据 适用场景:在做搜索接口 商品信息接口post是向服务器上传送数据 适用场景:在做数据添加修改删除时或图片上传等时能用到3、HTTP接口测试的类型?get请求无参数。 阅读详情

今天,分享一些在面试中可能会遇到的接口安全测试面试问题,助你在面试中从容不迫。

01.HTTPS 与 HTTP 的区别?

02.OSI七层模型是指?

03.你所知道的 HTTP 状态码

04.你知道SQL注入吗?

05.SQL 注入与XSS 的区别?

06.CSRF与XSS 的区别?

07.鱼叉式攻击和水坑攻击的区别?

08.什么是虚拟机逃逸?

09.你知道堡垒机吗?堡垒机有什么用?

10. 你知道中间人攻击吗?

11.你如何进行API的安全性测试?

以下是5800+字长文预警,建议先看完面试题,再查看对应回答。

1 HTTPS 与 HTTP 的区别?

1.安全性:

HTTP是一个无状态的、应用层的协议,信息是明文传输,主要用于在Web浏览器和服务器之间传输超文本,数据可以被任何在传输路径上的设备读取或篡改。

HTTPS则是具有安全性的ssl加密传输协议。HTTPS协议由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比HTTP协议安全。

2.端口:HTTPS通常使用443端口,而HTTP使用80端口。

3.传输方式:HTTPS协议需要到ca申请证书,包含服务器的公钥和相关信息。当客户端(如Web浏览器)与服务器建立HTTPS连接时,会验证服务器的证书是否有效和可信。如果证书无效或不被信任,客户端会拒绝与服务器建立连接。一般免费证书较少,因而需要一定费用。

互联网公司大都会用HTTPS来保障用户数据的安全性,当用户访问一个使用HTTPS的网站时,他们可以看到浏览器地址栏中的URL以“https://”开头,并且可能会显示一个绿色的锁图标或类似的标志,表示该连接是安全的。

2 OSI七层模型是指?

OSI七层模型:应用层,表示层,会话层,传输层,网络层,数据链路层,物理层。

1.应用层:OSI参考模型中最靠近用户的一层,提供人机交互的接口,为用户提供各种网络服务。我们常见应用层的网络服务协议有HTTP,HTTPS,FTP,POP3、SMTP等;

2.表示层:解决编码、加密、压缩等问题;

3.会话层:会话的建立、终止、维护,起到会话隔离的作用;

4.传输层:提供可靠的透明的端到端的通信,并进行差错控制和流量控制。我们通常说的,TCP/ UDP就是在这一层。端口号既是这里的“端”,是最核心的一层;(段/包文)

5.网络层:用IP地址寻址,并进行路径的选择;(包/分组)

6.数据链路层:负责帧在计算机之间的无差错传递;(帧)

7.物理层:利用物理传输介质,将数据以比特流的形式传输。(比特流)

图片

3 你所知道的 HTTP 状态码?

HTTP状态码是服务器对客户端请求的响应,用于表示Web服务器处理HTTP请求的结果。它们是一个三位数的代码,按照用途被分为五类:1xx(信息性状态码)、2xx(成功)、3xx(重定向)、4xx(客户端错误)和5xx(服务器错误)。

1xx :信息性状态(Info)——表示服务器收到请求,需要请求者继续执行操作;

2xx :成功(Successful)——表示请求已被成功接收、理解、接受; 

3xx :重定向(Redirection)——要完成请求必须进行更进一步的操作; 

 4xx:客户端错误(Client Error)——表示请求可能有语法错误或请求无法实现,妨碍了服务器的处理; 

 5xx :服务器端错误(Server Error)——表示服务器在处理请求的过程中发生了内部错误,未能实现合法的请求。

常见状态码:

• 200:成功(OK )——服务器已成功处理了请求;

• 301:永久移动(Moved Permanently)——请求永久重定向,请求的页面已永久移动到新位置; 

• 302:临时移动(Found )——请求临时重定向, 服务器目前从不同位置的网页响应请求,资源只是临时被移动,但请求者应继续使用原有URL来进行以后的请求; 

• 304 :未修改(Not Modified)——文件未修改,可以直接使用缓存的文件;

• 400 :错误请求(Bad Request )——由于客户端请求有语法错误,不能被服务器所理解; 

• 401 :未授权(Unauthorized)——请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用; 

• 403:禁止(Forbidden)——服务器收到请求,但是拒绝提供服务。服务器通常会在响应正文中给出不提供服务的原因; 

• 404:未找到(Not Found )——请求的资源不存在,例如,输入了错误的URL; 

• 500 :服务器内部错误( Internal Server Error )——服务器发生不可预期的错误,导致无法完成客户端的请求;

• 503 : 服务不可用(Service Unavailable )——服务器当前不能够处理客户端的请求,在一段时间之后,服务器可能会恢复正常;

测试工作中,可以根据HTTP状态码来定位问题。比如测试一个Web应用时,如果某个页面无法加载,查看浏览器返回的HTTP状态码。如果状态码是404,那么可能是服务器上没有找到对应的资源文件;如果状态码是500,那么需要检查服务器端的日志来查找具体的错误原因。

此外,日常工作中根据状态码来优化测试策略。比如,对于经常返回404状态码的页面,在测试计划中增加更多的覆盖这些页面的测试用例,确保这些页面在后续的迭代中不会出现问题。

4 你知道SQL注入吗?

SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编写时的疏忽,攻击者可以通过SQL注入来访问、修改或删除数据库中的敏感数据,甚至可能获得数据库的管理员权限。实现无账号登录,甚至篡改数据库。 

SQL注入原理:

1.利用Web应用程序中的输入验证和过滤机制的不足,将恶意的SQL代码插入到用户输入的参数中。

2.参数被用于构建SQL查询语句,当查询语句被发送到数据库服务器执行时,恶意代码也会被一起执行。

3.攻击者可以通过这种方式获取数据库中的敏感信息、篡改数据、甚至执行系统命令。

防御SQL注入:

1.对用户输入进行严格的验证和过滤,确保输入数据的合法性和安全性。

2.使用参数化查询或预编译语句来构建SQL查询语句,避免直接将用户输入拼接到查询语句中。

3.最小化数据库权限,确保应用程序只具有执行必要数据库操作所需的最低权限。

4.定期对应用程序进行安全审计和代码审查,及时发现和修复潜在的安全漏洞。

5 SQL 注入与XSS 的区别?

SQL注入:向Web应用程序提供的用户输入域中注入恶意的SQL代码,从而欺骗数据库服务器执行非授权的查询,获取或篡改数据的攻击方式。其原理是利用Web应用程序对用户输入数据的合法性没有严格判断或过滤的缺陷。

XSS(跨站脚本攻击):在Web页面中插入恶意脚本代码,当用户浏览该页面时,脚本代码会被执行,从而盗取用户信息或侵犯用户安全隐私,XSS攻击通常利用的是网页开发时留下的漏洞。

比如,在一个电子商务网站上,如果用户在搜索框中输入的查询没有得到适当的处理,就可能发生XSS攻击。攻击者可能会输入一个包含JavaScript代码的搜索词,如果这个代码没有被适当地清理或编码,它就可能在其他用户的浏览器中执行,导致会话劫持或其他安全问题。

6 CSRF与XSS的区别?

CSRF:利用用户已经通过身份验证的会话来执行未经授权的操作。攻击者通过欺骗用户来执行恶意操作,而用户并不知情。在CSRF攻击中,攻击者构造一个包含恶意操作的HTTP请求,诱使用户在已登录的Web应用程序上执行这个请求,从而利用用户的身份和权限进行非法操作。

XSS(跨站脚本攻击):在Web页面中插入恶意脚本代码,当用户浏览该页面时,脚本代码会被执行,从而盗取用户信息或侵犯用户安全隐私,XSS攻击通常利用的是网页开发时留下的漏洞。

在一个在线购物网站中,如果用户在浏览商品时点击了一个链接,这个链接实际上是一个CSRF攻击,它可能会在用户的浏览器中自动发起一个购买操作,而用户对此一无所知。而如果用户在留言板中输入的内容没有得到适当的处理,就可能发生XSS攻击,其他用户在查看留言板时,他们的浏览器可能会执行这段恶意脚本。

7 鱼叉式攻击和水坑攻击的区别?

鱼叉式攻击:针对特定个人或组织的网络钓鱼攻击,攻击者发送伪装成正规机构或个人的电子邮件,诱使受害者泄露个人信息或点击恶意链接,从而达到窃取敏感信息、传播恶意软件等目的。

水坑攻击:针对特定目标群体的网络攻击方式,攻击者首先确定这组目标经常访问的网站,并入侵其中一个或多个,植入恶意软件,等待目标访问时触发恶意代码,达到感染目标的目的。

8 什么是虚拟机逃逸?

虚拟机逃逸是指攻击者通过利用虚拟机软件或虚拟机中运行的软件漏洞,突破虚拟机的限制,实现与宿主机操作系统交互的一个过程。简单来说,就是攻击者能够绕过虚拟机的安全隔离机制,直接访问或控制宿主机系统。

实现虚拟机逃逸,通常满足以下条件:

1.存在漏洞:虚拟机软件或宿主机操作系统中存在可被利用的漏洞。

2.提权操作:攻击者需要在虚拟机中执行能够提升权限的操作,如执行系统级别的敏感指令。

3.渗透隔离机制:攻击者需要破坏虚拟机的隔离机制,实现与宿主机的交互。

你知道堡垒机吗?堡垒机有什么用?

堡垒机,也称为跳板机或远程访问服务器,是一种网络安全设备,它允许管理员控制和监控用户对服务器和其他网络资源的访问。它通常用于集中管理和记录用户会话,确保只有授权用户才能访问特定的系统资源,并且所有访问行为都会被记录和审计。 

堡垒机的主要优势在于提供了一个集中的访问点,可以加强访问控制和安全审计。

堡垒机在网络环境中的体现在以下3个方面:

1.细粒度的访问控制:通过堡垒机访问控制功能,可以实现对运维人员操作行为的精细化管理,降低操作风险。

2.运维过程的管控和审计:堡垒机的审计录像功能可以记录运维人员的操作行为,为事后追责提供可靠依据。堡垒机的实时监控和智能告警功能,可以及时发现潜在的安全威胁和异常行为。

3.提高安全性:堡垒机可以拦截非法访问和恶意攻击,过滤掉所有对目标设备的非法访问行为,并对内部人员误操作和非法操作进行审计监控,大大提高网络和数据的安全性。

如果一个公司的IT部门需要确保员工只能访问他们需要的资源,同时记录所有的访问行为以满足合规性要求,可以使用堡垒机来实现这一点。

10 你知道中间人攻击吗?

中间人攻击(MITM),攻击者通过技术手段将自己置于通信双方之间,从而拦截、读取、修改或伪造传输的数据,而通信的双方却毫不知情。这种攻击方式能够对用户数据的安全性和完整性造成严重威胁。

中间人攻击的常见方式包括截取会话Cookie、篡改传输数据、甚至劫持整个会话。例如,如果用户在公共Wi-Fi网络上进行在线银行操作,攻击者可以设置一个假的热点,当用户连接后,攻击者就可以截取用户的所有网络请求和响应。中间人攻击可能导致敏感信息泄露,如用户名、密码、信用卡信息等,甚至可以被用来进行身份冒充或进一步的网络攻击。

防范中间人攻击,可以采取以下措施:

1.使用HTTPS等加密协议来保护数据传输的安全。

2.采用证书和公钥基础设施(PKI)来验证通信双方的身份。

3.识别钓鱼网站和不安全的网络连接。

11 你如何进行API的安全性测试?

API的安全性主要涉及到数据保密性、完整性和可用性等方面。在数据传输过程中,如果未采取适当的加密措施,数据可能会被截获和篡改。此外,如果API存在逻辑漏洞或设计缺陷,攻击者可能会利用这些漏洞进行恶意操作。

测试API的安全性时,可以采取以下策略:

1.输入验证:确保API能够正确处理各种输入,包括正常输入和异常输入。通过模糊测试和边界值测试等方法,包括类型、范围、长度、格式等,防止输入参数被恶意利用,使用正则表达式、白名单、黑名单等方式进行验证,检查API是否对非法输入进行了有效的过滤和处理。

2.权限控制:验证API的权限控制机制是否有效,检查是否只有授权用户才能访问特定的API,并且用户只能执行其权限范围内的操作。

3.安全漏洞扫描:使用专业的安全漏洞扫描工具对API进行扫描,以发现可能存在的安全漏洞。这些工具可以自动检测常见的安全漏洞,如SQL注入、跨站脚本攻击(XSS)等。

4.加密传输:确保API在传输敏感数据时使用了适当的加密技术,比如使用HTTPS协议进行数据传输,以确保数据在传输过程中的保密性和完整性。

5.安全编码检查:对接口代码进行安全编码的检查,确保在接口设计、实现、发布过程中遵循安全编码规范,如OWASP Top 10、SANS CWE Top 25等。

比如,对于一个用户信息获取的接口,首先进行输入验证测试,确保用户ID等参数的有效性;然后进行权限控制测试,确保只有授权的用户才能获取用户信息;最后进行加密传输测试,确保用户信息在传输过程中的安全性。

最后感谢每一个认真阅读我文章的人,下方这份完整的软件测试教程已经整理上传完成,需要的朋友们可以文末自行领取:【保证100%免费】

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

拖动无标题栏的cef3窗口 拖动嵌入了cef3的无标题栏win32窗口,本质上就是拖动子窗口移动父窗口这么个事情,这个在自己创建窗口的程序上处理非常简单,cef封装较多,想修改的完善点步骤较多。         cef所用版本3.2623。         就用cefclient来做测试工程,首先建议在cefclient_win.cc的RunMain函数中的app = new ClientAppRenderer();前面 阅读详情

相关推荐

【Unity工具篇】| 使用YooAsset接入自己的游戏项目,实现完整热更新流程

前面文章介绍了YooAsset的原理和接入官方示例文档的文章介绍,本文使用YooAsset接入自己的游戏项目做示例。 【Unity工具篇】| 资源管理插件YooAsset,原理及相关配置 【Unity工具篇】| 游戏完整资源热更新流程,YooAsset官方示例项目 具体接入方法有很多种,本文会参照官方示例 Space Shooter 太空战机DEMO 用到的方式接入自己的游戏项目。

努力前行,总会成为自己心中的那道光 1万+

接口测试面试题汇总(含答案)

接口就是API,意思是应用程序编程接口 接口本质上是程序开发的函数和方法,提供参数和返回值接口测试是测试系统组件间接口的一种测试,接口测试主要用于检测外部系统和内部系统之间以及各个子系统之间的交互点。测试的重点是检查数据的交换、传递和控制管理的过程,以及系统间的相互逻辑依赖关系等。

weixin_60870637的博客 2万+

基于MATLAB/Simulink的四轮转向机构运动仿真与分析

本资源文件基于运动学相关理论,在前轮转向二自由度汽车模型上建立了四轮转向汽车的数学模型。通过使用MATLAB/Simulink软件进行建模,模拟了汽车在匀速直线运动下,给定一个方向盘转角作为仿真条件,观察了两种转向机构的横摆角速度和质心侧偏角的变化特点,并进行了比较。仿真结果表明:在低速状态下,四轮转向系统汽车通过前后轮同时做逆向运动,提供了比前轮转向系统更大的横摆角速度,质心侧偏角在短时间内稳定为零,减小了转弯半径,灵活性增加。在高速状态下,四轮转向系统汽车前后轮同时做同向运动,横摆角速度小于前轮转向系统的横摆角速度,质心侧偏角最终为零且保持稳定,操纵稳定性提高。综上所述,装备了四轮转向系统的汽车在低速和高速状态下均表现出优于装备前轮转向系统的汽车的性能。

2023非常全的接口测试面试题及参考答案

一、前言 接口测试最近几年被炒的火热了,越来越多的测试同行意识到接口测试的重要性。接口测试为什么会如此重要呢? 主要是平常的功能点点点,大家水平都一样,是个人都能点,面试时候如果问你平常在公司怎么测试的,你除了说点点点,还能说什么呢,无非就是这个项目点完了点那个项目, 这就是为什么各行各业的只要手指能点得动的人都来转行软件测试了。面试的时候面试官希望你除了点点点,还能更深入一点的思考页面上看不到的功能,也就是接口测试了。接口是看不见的,但是可以访问! 二、2021非常全的接口测试面试题及参考答案 1、你们.

测试萌萌 1万+

测试老鸟汇总,19接口测试常遇面试题+答案(详全)

1、get和post区别是什么?答:POST和GET都是向服务器提交数据,并且都会从服务器获取数据。区别:1)传送方式:get通过地址栏传输,post通过报文传输2)传送长度:get参数有长度限制(受限于url长度),而post无限制。

大佬云集技术答疑交流群:743262921(进群暗号:222) 4066

接口测试常见面试题

接口测试面试题

he0906117的博客 5313

30个接口自动化测试面试题,赶紧收藏

1. 什么是接口自动化测试? 答:接口自动化测试是指使用自动化工具对接口进行测试,验证接口的正确性、稳定性和性能等方面的指标。 2. 为什么要进行接口自动化测试

主要分享测试的学习资源,帮助快速了解测试行业,帮助想转行、进阶、小白成长为高级测试工程师。 7672

接口测试系列之——接口安全测试

Testerhome社区爱好者合力编写了《2021接口测试白皮书》,并于今年2月底发布。本文节选自其中的的「安全测试」章节。 “开源 Web 应用安全项目”(OWASP)在 2019 年发布了 API 十大安全风险 《OWASP API 安全 Top10》:失效的对象级别授权、失效的用户身份验证、过 度的数据暴露、资源缺乏和速率限制、失效的功能级授权、批量分配、安全配置 错误、注入、资产管理不当、日志和监视不足位列其中。我们以此为依据对 API十大安全风险进行介绍。 ▌失效的对象级别授权 失效的对.

6223

软件测试面试题目—接口测试面试题,梦寐以求的答案来了

最近很多人在问接口测试面试题有哪些,小编基于大家的需求,花了好几天时间给大家整理了一篇接口测试面试的时候经常会问到的一些题。大家觉得有用的话记得分享给身边有需要的朋友。(笔芯)

软件自动化测试技术交流、资源分享 4623

接口测试|超详细面试题【附答案】

接口测试的重要性,相信不用我多说了。接口测试是现在软件测试工程师一个加分项。因为很多朋友一开始做了几年的软件测试都是在做功能测试,做界面UI的测试,然而没有做过接口测试。(很正常很普遍)

人生不怕起点低,就怕没追求 2357

常见的接口测试面试题

答:无状态是指协议对于事务处理没有记忆能力,服务器不知客户端是什么状态。即我们给服务器发送 HTTP 请求之后,服务器根据请求,会给我们发送数据过来,但是,发送完,不会记录任何信息。HTTP 是一个无状态协议,这意味着每个请求都是独立的,Keep-Alive 没能改变这个结果。缺少状态意味着如果后续处理需要前面的信息,则它须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

2201_76100073的博客 2089
上一篇: iOS自动化测试方案及其环境搭建 - Cucumber
下一篇: 车载测试面试题连载六:什么是ECU, 什么是UDS诊断?
程序员可可
博客等级 码龄2年 3532粉丝 429原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值