滴滴出行研发工程师笔试题(五)-2016年

问答题

1、请解释下referer是什么,并任意描述一些与之相关的攻击场景或安全漏洞。

2 、分类列举sql注入常用判断方法。

3、根据不同的维度,描述软件测试可以划分的种类。例如,根据软件的生命周期,我们可以将测试划分为:单元测试,集成测试,系统测试,验收测试.....请至少根据两种不同的依据,说出2-3软件测试方式。(不包含举例的内容)

4、有如下2个文件:test.cpp,test.hpp,简述下g++编译器将其编译成binary的工程中都做了哪些事情?

5、如何用一枚硬币等概率地产生一个1到3之间的随机整数?如果这枚硬币是不公正的呢?

6、简述对称密钥密码体系与公钥密码体系的区别。

7、现在有10个人被一个魔鬼逮住了。魔鬼对于直接把人杀掉的方法不感兴趣了。于是,他就想了一个杀人的新花样。是这样的,一天晚上,魔鬼向着十个人宣布了游戏规则,即明天早上他要把10个人排成一排,然后从一堆既有无限多的白帽子混着无限多黑帽子的帽子堆为每个人随机抽取一顶帽子,给他们10个人都戴上帽子。因为10个人是排成一排的,所以排在第10个的人可以看到前面9个人帽子的颜色,排在第9个人可以看到前面8个人的帽子的颜色,...以此类推。然后,魔鬼会从排在第10个人开始,问他,你头上的帽子的颜色是白色还是黑色,如果答对了,就放他走;如果答错了,就被杀掉。然后同样问排在第9位的人,然后问排在第8位的人,....以此类推。在这其中,10个人所能做的只有当他被魔鬼问到的时候,答白色或者黑色。不能有超越此范围的任何行动,不然,魔鬼会把它们10个人全部杀死。

 现在魔鬼给他们10个人一晚上的时间去商量一个对策,使得他们中能存活下来的人越多越好。请问,你会有什么样的对策,请计算出按照你的对策执行时最坏的情况下,他们中能有多少人能100%够活下来?期望能活下来的人数又是多少?


参考答案

1、HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器籍此可以获得一些信息用于处理。

如果是CSRF攻击传来的请求,Referer字段会是包含恶意网址的地址,这时候服务器就能识别出恶意的访问。

2、分为以下两大类:

1)整形参数判断

通常news.asp中SQL语句原貌大致如下:

select * from 表名 where 字段=xx,所以可以用以下步骤测试SQL注入是否存在。

最简单的判断方法

http://xxx/news.asp?id=xx’(附加一个单引号),

2)字符串型参数判断

通常news.asp中SQL语句原貌大致如下:

select * from 表名 where 字段='xx',所以可以用以下步骤测试SQL注入是否存在。

http://xxx/news.asp?id=xx’(附加一个单引号),此时news.asp中的SQL语句变成了

select * from 表名 where 字段=xx’,news.asp运行异常;

http://xxx/news.asp?id=xx and '1'='1', news.asp运行正常,

而且与 http://www.hackbase.com/news.asp?id=xx运行结果相同;

http://xxx/news.asp?id=xx and '1'='2', news.asp运行异常;

如果以上满足,则news.asp存在SQL注入漏洞,反之则不能注入

3、分类如下:

1)按照是否使用自动化工具分为:手工测试,自动化测试

2)按照软件的质量分为:功能测试,可靠性测试,易用性,可维护测试性测试,可移植性测试

3)对测试按照阶段可以分为:单元测试,继承测试,系统测试

4)按照是否关注代码:黑盒测试,白盒测试

4、预处理,编译,汇编,连接。

5、如果是公正的硬币,则投掷两次,“正反”为1,“反正”为2,“正正”为3,“反反”重来。

如果是不公正的硬币,注意到出现“正反”和“反正”的概率一样,因此令“正反反正”、“反正正反”、“正反正反”分别为1、2、3,其余情况重来。另一种更妙的办法是,投掷三次硬币,“正反反”为1,“反正反”为2,“反反正”为3,其余情况重来。

6、如下:

1)对称密钥密码体系

对称密钥密码体系也叫密钥密码体系,它是指消息发送方和消息接收方必须使用相同的密钥,该密钥必须保密。发送方用该密钥对待发消息进行加密,然后将消息传输至接收方,接收方再用相同的密钥对收到的消息进行解密。这一过程可用数学形式来表示。消息发送方使用的加密函数encrypt有两个参数:密钥K和待加密消息M,加密后的消息为E,E可以表示为E=encrypt(K,M)消息接收方使用的解密函数decrypt把这一过程逆过来,就产生了原来的消息:

            M=decrypt(K,E)=decrypt(K,encrypt(K,M)) 

2)非对称密钥密码体系    

    非对称密钥密码体系又叫公钥密码体系,它使用两个密钥:一个公共密钥PK和一个私有密钥SK。这两个密钥在数学上是相关的,并且不能由公钥计算出对应的私钥,同样也不能由私钥计算出对应的公钥。这种用两把密钥加密和解密的方法表示成如下数学形式。假设M表示一条消息,pub—a表示用户a的公共密钥,prv—a表示用户a的私有密钥,那么:

            M=decrypt(pub—a,encrypt(prv—a,M))

7、大家约定白代表偶,黑代表奇,则第10个人的回答是前9个帽子中白帽的数量的奇偶。他自己有50%的机会。­第9个人听到他的回答后,结合 他看到的8顶帽子中白帽的奇偶,可以知道自己的帽子的颜色,如实作答。第8个人知道9顶帽子中白帽的奇偶,加上听到第9顶帽子的颜­色,就可以知道前8顶 帽子中白帽的奇偶(如果第9个人答白,则前8顶中的白帽奇偶性与第第10个人所说的相反;如果第9个人答黑,则相同),再结合所看到前7顶­帽子中的白帽 数量,也可以推出自己的帽子颜色,也如实作答。依此类推,前9个人都可以活下来,第10个人有一半机会。


个人资料
Bingo
等级:9
文章:694篇
访问:38.9w
排名: 1
上一篇: 滴滴出行研发工程师笔试题(四)-2016年
下一篇:小米暑期实习笔试题-2015年
猜你感兴趣的圈子:
滴滴出行笔试面试圈
标签: 密钥、帽子、news、asp、魔鬼、面试题
隐藏