收录一下遇到的笔试题,希望每做一套都有收获,而不是盲目刷题。
小米2020运维工程师
数据库事务特性
- 原子性
原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。
- 一致性
一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。
拿转账来说,假设用户A和用户B两者的钱加起来一共是5000,那么不管A和B之间如何转账,转几次账,事务结束后两个用户的钱相加起来应该还得是5000,这就是事务的一致性。
- 隔离性
隔离性是当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离。
即要达到这么一种效果:对于任意两个并发的事务T1和T2,在事务T1看来,T2要么在T1开始之前就已经结束,要么在T1结束之后才开始,这样每个事务都感觉不到有其他事务在并发地执行。
- 持久性
持久性是指一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作。
例如我们在使用JDBC操作数据库时,在提交事务方法后,提示用户事务操作完成,当我们程序执行完成直到看到提示后,就可以认定事务以及正确提交,即使这时候数据库出现了问题,也必须要将我们的事务完全执行完成,否则就会造成我们看到提示事务处理完毕,但是数据库因为故障而没有执行事务的重大错误。
HTTP协议请求类型
- GET: 请求指定的页面信息,并返回实体主体。
- HEAD: 只请求页面的首部。
- POST: 请求服务器接受所指定的文档作为对所标识的URI的新的从属实体。
- PUT: 从客户端向服务器传送的数据取代指定的文档的内容。
- DELETE: 请求服务器删除指定的页面。
- OPTIONS: 允许客户端查看服务器的性能。
- TRACE: 请求服务器在响应中的实体主体部分返回所得到的内容。
- PATCH: 实体中包含一个表,表中说明与该URI所表示的原内容的区别。
- MOVE: 请求服务器将指定的页面移至另一个网络地址。
- COPY: 请求服务器将指定的页面拷贝至另一个网络地址。
- LINK: 请求服务器建立链接关系。
- UNLINK: 断开链接关系。
- WRAPPED: 允许客户端发送经过封装的请求。
- Extension-mothed:在不改动协议的前提下,可增加另外的方法。
当每类资源只有一个个体时
- 死锁必有环
- 被锁者一定全在环中
- 有环必死锁
提高前后端交互中cookie安全性方法
- 服务端对Cookie内容加密
- 设置HttpOnly
- 对Cookie设置有效时间
常用的企业级监控方案
- Zabbix
- *Nagios XL *
- GroundWork
- Hyperic
- NetXMS
- Pandora FMS
- OpenNMS
- Open Falcon
[常用的17个运维监控系统][https://blog.csdn.net/t8116189520/article/details/81737694]
软件目前提供了权限控制功能
- Redis
- memcache
- MongoDB
- MySQL
Python2和Python3区别
- Python3使用 print 必须要以小括号包裹打印内容
- Python2中使用ascii编码,Python3中使用utf-8编码
- Python2中是raw_input()函数,Python3中是input()函数
- Python2中range(1,10)返回列表,Python3中返回迭代器
零散的题目
数据库集群、数据库和表的关系:一个数据库集群可以管理多个数据库,一个数据库只能包含一个表
Linux下查看服务器本地网络链接各种状态的命令:netstat
一个虚拟存储器系统中,主存容量为200MB,辅存容量为800MB,地址寄存器有36位,那么该系统中,虚存的最大容量:64GB 计算方法:Min(内存+外存,2^地址寄存器位数)
若一台计算机的内存为128MB,则交换分区的大小通常是 256MB 计算方法: *当内存小于2g,交换空间大小为内存的两倍,当内存大于2g,交换空间大小为内存大小加上2g *
在可变分区存储管理中,最优适应分配算法要求对空闲区表项按尺寸从小到大进行排列
哔哩哔哩2019安全工程师
转义函数
- escapeshellarg:把字符串转码为可以在 shell 命令里使用的参数
- htmlentities:将字符转换为 HTML 转义字符
- escapeshellcmd:shell 元字符转义
- mysql_real_escape_string:转义 SQL 语句中使用的字符串中的特殊字符,并考虑到连接的当前字符集
获得域名解析的IP地址命令
- dig: 主要用来从 DNS 域名服务器查询主机地址信息
- ping: 可以检查网络是否连通,可以很好地帮助我们分析和判定网络故障。(输入域名地址会解析成IP地址)
- nslookup: 可以指定查询的类型,可以查到DNS记录的生存时间还可以指定使用哪个DNS服务器进行解释
可以抓取THHP数据包的工具
- Burpsuite
- Wiresark
- Fiddler
应急响应中常用查看信息的命令
- ps -aux
- w
- more .bash_history
WAF
WAF是通过预设规则来拦截异常请求,
例如:
- xss payload中的敏感字符< >,和敏感语句script等
- sql语句中敏感字符 ’ 和select等
- cc攻击发起的大量异常数据包
而弱口令密码是则是正常请求,例如密码123456被攻击者猜测到并以此密码通过验证,waf则无法拦截
浏览器同源策略
定义
如果两个 URL 的 protocol、port (如果有指定的话)和 host 都相同的话,则这两个 URL 是同源。这个方案也被称为“协议/主机/端口元组”,或者直接是 “元组”。(“元组” 是指一组项目构成的整体,双重/三重/四重/五重/等的通用形式)。
下表给出了与 URL http://store.company.com/dir/page.html 的源进行对比的示例:
| URL | 结果 | 原因 |
|---|---|---|
http://store.company.com/dir2/other.html |
同源 | 只有路径不同 |
http://store.company.com/dir/inner/another.html |
同源 | 只有路径不同 |
https://store.company.com/secure.html |
失败 | 协议不同 |
http://store.company.com:81/dir/etc.html |
失败 | 端口不同 ( http:// 默认端口是80) |
http://news.company.com/dir/other.html |
失败 | 主机不同 |
可以清理自己在服务器上操作的指令历史记录的指令
- history -c
- *echo > ~/.bash_history *
零散的题目
可以执行的CSRF漏洞的修复方案:检测HTTP referer字段同域
如果 https://security.bilibili.com/ 存在 git 源码泄露你应该访问ur:lhttps://security.bilibili.com/.git/config进行验证
有一个一句话木马的代码为<?php $x=$_GET[‘cmd’]; @eval(“$x;”);?>, 那他的密码是:cmd
aslr是对抗缓冲区溢出漏洞攻击的技术
当访问web网站某个资源不存在时,返回的HTTP状态码是404
Flask 的修饰器 @login_requried 的作用是验证登录权限
浩鲸科技2019综合类
uname和who
uname
- -a或–all 显示全部的信息。
- -m或–machine 显示电脑类型。
- -n或-nodename 显示在网络上的主机名称。
- -r或–release 显示操作系统的发行编号。
- -s或–sysname 显示操作系统名称。
- -v 显示操作系统的版本。
- –help 显示帮助。
- –version 显示版本信息。
who
- who 可以查询当前登录在系统上的登录用户的信息
- who am i 等同于 who -m,只打印执行该命令的登录用户的信息
- whoami 可以查询当前有效用户的名字
find和grep
- find 根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。
- grep是根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找。
*.tar.gz
- *压缩文件:
tar -czvf file.tar.gz file* - *解压文件:
tar -xzvf file.tar.gz*
linux查看文件的命令
- more只能用空格键下翻,不小心翻多了就没法反回看
- less具有more相同的功能,同时支持方向键和前翻页,后翻页滚屏。
- cat直接查看文件内容
数据库文件
- 主数据文件扩展名:.mdf
- 次数据文件扩展名:.ndf