国企&银行面试经验
作者:互联网
中国人寿研发中心
一面3个面试管,自我介绍、问题:对安全的理解,想做什么方向
一面后技术笔试,3个编程题如下
1.笔试题目 三道题
1.根据身高重建队列
输出是符合题目的要求即->【数组的第一个数字是这个人的身高,第二个数字是排在这个人前面】这个要求。
比如[[7, 0], [6, 1], [7, 1]]
[7, 0] 前面没有比7大的,所以是0
[6, 1] 前面有一个身高7的,所以是1个
[7, 1] 前面有一个身高7的,所以是1个 即全都符合要求
重新排序,矮的放后面,因为矮的即使放在了高的前面,也不会对之前高的产生影响。但高的放在前面,对矮的结果就会产生影响了。
身高相同,个数小的在前面,因为相同的身高,后面的个数肯定要大。
数组的第一个数字是这个人的身高,第二个数字是排在这个人前面,身高大于或者等于这个人身高的人数
身高相同,按照个数升序排序;身高不同,按照身高降序排列
排序后:
[ 7, 0 ], [ 7, 1 ], [ 6, 1 ], [ 5, 0 ], [ 5, 2 ], [ 4, 4 ]
第二个数字作为索引位置,把数组放在目标索引位置上。如果原来有数了,会被往后挤
[[7, 0]]
[[7, 0], [7, 1]]
[[7, 0], [6, 1], [7, 1]]
[[5, 0], [7, 0], [6, 1], [7, 1]]
[[5, 0], [7, 0], [5, 2], [6, 1], [7, 1]]
[[5, 0], [7, 0], [5, 2], [6, 1], [4, 4], [7, 1]]
public class Solution {
public static int[][] reconstructQueue(int[][] people) {
// 身高相同,按照个数升序排序;身高不同,按照身高降序排列(x 在 y 前面,x - y > 0 则交换位置。Arrays.sort默认升序
Arrays.sort(people, (int[] a, int[] b) -> (a[0] == b[0] ? a[1] - b[1] : b[0] - a[0]));
List<int[]> res = new ArrayList<>();
for (int[] i : people) {
res.add(i[1], i); // 把数组放在目标索引位置上,原来有数了,会被往后挤
// System.out.println(Arrays.deepToString(res.toArray()));
}
return res.toArray(new int[0][2]); // 容器转成数组
}
public static void main(String[] args){
reconstructQueue(new int[][]{{7,0}, {4,4}, {7,1}, {5,0}, {6,1}, {5,2}});
}
}
class Solution(object):
def reconstructQueue(self, people):
"""
:type people: List[List[int]]
:rtype: List[List[int]]
"""
people.sort(key =lambda x:(-x[0],x[1]))
res =[]
for p in people:
res.insert(p[1],p)
return res
2.编辑距离
3.朋友圈
DFS
public class Solution {
public void dfs(int[][] M, int[] visited, int i) {
for (int j = 0; j < M.length; j++) {
if (M[i][j] == 1 && visited[j] == 0) {
visited[j] = 1;
dfs(M, visited, j);
}
}
}
public int findCircleNum(int[][] M) {
int[] visited = new int[M.length];
int count = 0;
for (int i = 0; i < M.length; i++) {
if (visited[i] == 0) {
dfs(M, visited, i);
count++;
}
}
return count;
}
}
并查集
判断是否有相同的根节点
public class Solution {
int find(int parent[], int i) { //找根结点
if (parent[i] == -1)
return i;
return find(parent, parent[i]);
}
void union(int parent[], int x, int y) { //合并
int xset = find(parent, x);
int yset = find(parent, y);
if (xset != yset)
parent[xset] = yset;
}
public int findCircleNum(int[][] M) {
int[] parent = new int[M.length];
Arrays.fill(parent, -1);
for (int i = 0; i < M.length; i++) {
for (int j = 0; j < M.length; j++) {
if (M[i][j] == 1 && i != j) {
union(parent, i, j);
}
}
}
int count = 0;
for (int i = 0; i < parent.length; i++) {
if (parent[i] == -1)
count++;
}
return count;
}
}
3.实习项目和用的框架
内网安全管理平台开发,django
4.为啥想加入人寿
国企、work life balance 、有研发工作,能解决一些问题 、宣讲感觉不错
5.为什么选软件测试?觉得自己开发水平怎么样
岗位我的兴趣是想做安全和开发相关的。看到没专门的安全岗位,测试有安全测试就投递了。另外宣讲会说之后会统一调岗就报名了。
6.对人寿研发中心的了解
之前宣讲会的了解,加上自己在关注金融行业,疫情对人寿的冲击比较大,看了公司的年报,比如银行和券商的人寿的线下业务是最多的,我个人想法人寿能多一些线上的发展。
7.项目中的数据库问题
model 类 MYSQL数据库 setting 设置
8.自动化测试有哪些,用例如何考虑
等价类 边界值
1.1什么是自动化测试
自动化测试简单来说就是用机器代替手工的方式来参与软件测试的活动,自动化测试是软件活动中的一个重要分支和组成部分,随着软件产业的不断发展,市场对软件周期的要求越来越高,于是催生各种开发模式,如大家熟知的敏捷开发,从而对测试提出了更高的要求。此时,产生了自动化测试,即利用工具或者脚本来达到软件测试的目的,没有人工或极少人工参与的软件活动称为自动化测试。自动化测试的优势如下:
更方便对系统进行回归测试,当软件的版本发布比较频繁时,自动化测试的效率更加明显
可以自动处理原本繁琐,重复的任务,提高测试的准确性和测试人员的积极性
自动化测试具有复用性和一致性,即测试脚本可以在不同的版本上重复运行,且可以保障猜测内容的一致性
1.2自动化测试的分类
从软件开发周期或者分层的角度来分类:
单元自动化测试
单元自动化测试是指自动化地完成对代码中的类或方法进行测试,主要关注代码的实现细节以及业务逻辑等方面。
接口自动化测试
接口自动化测试用于测试系统组件件接口的请求与返回。接口测试稳定性高,更适合开展自动化测试。
UI动化测试
用自动化技术对图形界面进行流程和功能方面验证的过程。
从测试目的角度分类:
功能自动化测试
功能自动化测试主要检查实际功能是否符合用户的需求,主要以回归测试为主,涉及图形界面,数据库连接,以及其他比较稳定而不经常发送变化的元素
性能自动化测试
性能自动化测试是托管自动化平台的执行性能测试,收集测试结果,并能分析测试结果的一种可以接近无人值守的性能测试。性能自动化测试有以下特性:
对脚本创建和优化提供类库和其他模块支撑
可以设定自动化任务
自动收集测试结果并存储
事中监控
成熟的平台可以进行自动分析功能
安全自动化测试
1.3测试分类
按开发阶段分类:
单元测试
又称模块测试,针对软件设计最小单位-程序模块,进行正确性检查的测试工作。
集成测试
又叫组装测试,通常在单元测试的基础上,将所有程序模块进行有序的递增的测试。
系统测试
指的是将整个软件系统看为一个整体进行测试,包括对性能,功能,以及软件所运行的软硬件环境进行测试。
按是否运行分类
静态测试
指不实际运行被测试软件,而只是静态的检查代码,界面或文档中可能存在的错误过程
动态测试
指实际运行被测试程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程
验收测试
Alpha测试是内测版本,即现在所说的CB,从版本表示该软件是一个初步完成品,通常只是在软件开发者内部交流,也有很少一部分发布给专业测试人员,一般而言,该版本软件的bug较多,普通用户最后不要安装。
Beta是公测版本,是对所有用户开房的测试版本,该版本相对Alpha版本已经有了而很大改进。
Gamma版本测试,指的是软件版本正式发行的迭代版,该版本已经相当成熟的,与即将发行的正式版本相差无几,成为正式版本发布的候选版本
9.职业规划
互联网:
1.如果通过面试,我会在我最初始的两年中,踏实的做好自己的本职工作,熟练掌握工作中需要掌握的工具,对于公司给安排的任务,能够在及时地完成,因为公司招聘我们是帮公司干活完成任务,所以这些是首先要去完成的。
2.在工作中,会向高手请教,研究些新技术,提高自己的技术水平。
3.当前面这些完成,我已经是可以成为一位独挡一面的技术工程师了,这个时候,我想去能够熟悉公司使用的这套框架,搞懂底层原理,通过去看书/逛游戏的开源社区去搞懂这些底层原理,确保如果以后出现比较难解决的问题,能够快速的定位问题,解决问题。
4.在接下来的几年中,想努力成为一名架构师了,“不想当架构师的程序员不是好程序员。”,自己在以后也会朝着这个方向去努力。
国企:
1. 如果通过面试,刚入职的1-2年,踏实干好本质工作和任务,向周围的优秀的同事学习,研究新技术,提高自己的技术水平,不断学习成长为一个可以领域的专业。
2.除此之外,在技术方面学有余力的同时,锻炼一下自己的与人沟通交流的能力,适当培养自己的管理能力。
3.自己的终极目标是成为有一定管理能力的技术大牛。
10.有什么想问的
1.调岗位
2.部门是双向选择吗
11.安全测试
1.自动化代码审计工具
2.自动化测试工具
3.安全缺陷
一、软件安全性测试基本概念
软件安全性测试包括程序、网络、数据库安全性测试。根据系统安全指标不同测试策略也不同。
1.用户程序安全的测试要考虑问题包括:
① 明确区分系统中不同用户权限;
② 系统中会不会出现用户冲突;
③ 系统会不会因用户的权限的改变造成混乱;
④ 用户登陆密码是否是可见、可复制;
⑤ 是否可以通过绝对途径登陆系统(拷贝用户登陆后的链接直接进入系统);
⑥ 用户推出系统后是否删除了所有鉴权标记,是否可以使用后退键而不通过输入口令进入系统。
2.系统网络安全的测试要考虑问题包括:
① 测试采取的防护措施是否正确装配好,有关系统的补丁是否打上;
② 模拟非授权攻击,看防护系统是否坚固;
③ 采用成熟的网络漏洞检查工具检查系统相关漏洞;
④ 采用各种木马检查工具检查系统木马情况;
⑤ 采用各种防外挂工具检查系统各组程序的客外挂漏洞。
3.数据库安全考虑问题:
① 系统数据是否机密(比如对银行系统,这一点就特别重要,一般的网站就没有太高要求);
② 系统数据的完整性;
③ 系统数据可管理性;
④ 系统数据的独立性;
⑤ 系统数据可备份和恢复能力(数据备份是否完整,可否恢复,恢复是否可以完整)。
终面情况:
5个面试官吧大概,首先自我介绍,接着问了安全的问题,不晓得为啥都喜欢问XSS,还没回答完毕就被打断了可能时间比较紧张,然后问了自己本科学校和家是哪里的。
中国邮政储蓄银行软件研发中心
准备:
一面:正常无结构化,无技术问题
二面:
为什么来邮政?优势
1.国企银行、业务广泛、快递业务、网点感觉很广
一是基层网点众多。现在全国各地区的农村乡镇上都有邮政储蓄银行的网点,是农村金融市场的生力军。国有银行的网点主要还是在大城市,最低深入到县城,国有银行在农村金融市场几乎空白,只有农业银行偶尔有零星网点。邮政储蓄银行正好填补了农村市场的空白,服务农村大众客户。
邮政储蓄银行业务比较单一,以农村市场为基地,以存款业务为靠山,穿插一些保险代理之类的中间业务赚取一些手续费,重点还是在小、微、散上下功夫。
2.问了我为什么选择邮储,在银行受到互联网金融较大冲击的情况下为什么还会选择银行,给专业能力、交往能力、领导能力排个序等等。最后收到了OFFER
3.技术面也是以介绍项目和围绕项目的问题为主,还问了投过哪些公司,未来的职业规划等等
4.如果能通过面试的话,会有培训 和导师带吗
真实面试情况:
要求9点半到,我是9点10分到就是最后一个了,然后等了将近2个小时,6个面试官
2个问技术问题:SQLmap 的原理 、XSS 、XSS的原理
2个非技术:想做哪个方向、 项目最困难的事情、目前有什么offer,为什么不签
国家电网
1.国网统一笔试考的稀烂,也通过了笔试
2.面试【不用准备 没技术问题】
准备
1.自我介绍
。。。。。
2.为什么来国网【。。。。】
1.电力作为国家重要关键基础设施十分重要,国家电网也非常重视信息化和安全,覆盖全国平台很大。
2.对安全感兴趣
3.工作相对互联网没有996
3.专业给国网带来什么,怎么结合【。。。。】是想攻击还是防御
渗透测试、应急响应、安全开发数据分析、态势感知【信息采集、数据预处理、风险评估、态势可视化】、智能监测
风险:
防护:
4.安全事件盘点【电力】
-
2010年震网 病毒 伊朗核设施
原理:恶意代码以干扰离心机阀门、造成超压导致离心机批量损坏调整为修改离心机转数。 -
2015年乌克兰配电公司数据采集系统,电力中断3个小时、乌克兰停电事件(黑暗力量)
黑客通过收集目标用户邮箱,然后向其定向发送携带恶意文件的Spam邮件,疏于安全防范的用户打开了带宏病毒的Office文档(或利用Office漏洞的文档)即可运行Installer(恶意安装程序)防御: 对邮件内包含的所有文件进行动态行为鉴定,一旦判定文件具有恶意行为会将其删除或隔离。 第二,对系统关键进程进行监控,一旦发现可疑操作立即阻断其执行。 第三,阻断恶意代码对外连接,设置一个IP黑白库对系统外连的ip地址进行过滤。
-
美国IOT攻击
4.委内瑞拉大停电
原理: -
17年花住酒店数据泄漏
原理: -
永恒之蓝
5.电网可能的安全问题
1.现实物联网汽车充电桩 协议问题 【明文传输】漏洞 摄像头开启远程登陆并且没有修改原始密码
2.国企内部可能会应用国外的windows操作系统的产品版本漏洞可能存在后门
3.底层芯片 供应链
应对措施:
1.应用尽量国产化的软件、平台、加密算法
2.有专门的安全团队,懂电力和安全
6.中国网络安全产业和国外的差距?
中国网络安全产业 规模小 同质化严重。企业对安全投入小 美国网络安全产业突入好几倍,如今和安全公司更偏向互联网安全,物联网这部分做的比较少,奇安信 360 但是懂安全也要懂业务 安全公司不懂业务,安全和工控结合。
7.工业互联网问题:
1.操作系统 软件没升级漏洞
2.访问控制 和 认证做的不好 U盘
3.内外网隔离存在问题、边界划分问题
4.数据明文传输
5.大量终端设备缺乏防护被控制造成ddos
8、物联网安全威胁
终端安全威胁
终端设备存在弱口令问题
终端设备存在安全漏洞易于被操控发动DDOS攻击、发送垃圾邮件等
终端设备身份认证识别弱
终端设备被植入恶意代码或成为僵尸网络
管道安全威胁
没有统一的物联网通信协议标准
物联网卡监管体系不健全
物联网管道存在多样化,部分技术未纳入安全监控,例如蓝牙、NFC等
物联网管道攻击手段多样化,如中间人攻击
云服务安全威胁
数据泄露
系统漏洞被利用
物联网身份容易被伪造
物联网API接口多,容易被恶意攻击者攻击
DDOS攻击
问题:
想问下公司有没有电力系统的培训?
中国移动终端
拒了中国移动研究院的面试,面了这个
一面:
1.中国网络安全和美国的区别
2。忘记了
二面:
1.SQL的防御措施
2.中国网络安全和美国网络安全的理解
3.职业规划
4.爱自己的专业吗
5.你是哪里人
联通智慧安全&软件研究院
- 智慧安全
是党员吗、想做什么方向、无技术问题 - python和C 的区别、什么事过拟合、常见的web漏洞有哪些、list和tuple的区别
民生银行
一面:
1.一面:安全问题 SQL注入怎么解决 XSS是什么
2.银行哪些安全问题?
二面:
写不动了先这些吧
标签:经验,parent,安全,int,面试,国企,测试,自动化,身高 来源: https://blog.csdn.net/Bulldozer_GD/article/details/110842626