1、防止SQL注入有哪两种方式?
使用参数化查询(优先)
对不可信数据进行校验
2、XSS注入分类?
反射型XSS注入
存储型XSS注入
DOM型XSS注入
3、XSS和CSRF的区别?
XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。
4、XXE注入方式?
基础的XXE注入
基于盲注的XXE注入
基于错误的XXE注入
5、XML由哪3个部分组成?
文档类型定义(Document Type Definition,DTD)
可扩展的样式语言(Extensible Style Language,XSL)
可扩展链接语言(Extensible Link Language,XLL)
6、如何防范SSRF?
1)因为SSRF最大的风险是信息泄露探知内网的信息,因此针对SSRF存在如下几种修复方法:
2)禁用不需要的协议。仅仅允许http和https请求。(Rest服务接口)
3)限制请求的端口为http常用的端口。比如,80,443,8080,8090。
4)过滤返回信息。验证远程服务器对请求的响应是比较容易的方法。如果web应用是去获取某一种类型的文件。那么在把返回结果展示给用户之前先验证返回的信息是否符合标准。
5)统一错误信息。避免用户可以根据错误信息来判断远端服务器的端口状态。
6)对DNS重绑定,考虑使用DNS缓存或者Host白名单
7、加密系统的保密性由什么决定?
取决于对密钥的保密
8、密码算法分为哪两种?
对称密码算法
非对称密码算法
9、对称加密算法分为哪两种?
流加密算法
分组加密算法
10、加密的过程?
密文 = 明文 * (加密算法+ 密钥)
11、HTTP有哪八种请求类型?
- GET
- POST
- PUT
- DELETE
- Options
- HEAD
- TRACE
- CONNECT
其中,GET和POST是最基本的,其他方式都是通过这两种请求间接实现的。
12、session什么时候被创建?
一个常见的错误是以为session在有客户端访问时就被创建,然而事实是直到某server端程序(如Servlet)调用HttpServletRequest.getSession(true)这样的语句时才会被创建。
13、session何时被删除?
- 程序调用HttpSession.invalidate()
- 距离上一次收到客户端发送的session id时间间隔超过了session的最大有效时间
- 服务器进程被停止
再次注意,关闭浏览器只会使存储在客户端浏览器内存中的session cookie失效,不会使服务器端的session对象失效。
14、运输层协议与网络层协议的区别?
网络层协议负责的是提供主机间的逻辑通信
运输层协议负责的是提供进程间的逻辑通信
15、http 响应码 301 和 302 代表的是什么?有什么区别?
301:永久重定向。
302:暂时重定向。
它们的区别是,301 对搜索引擎优化(SEO)更加有利;302 有被提示为网络拦截的风险。
16、tcp 为什么要三次握手,两次不行吗?为什么?
为了节省服务器资源。
详解:如果采用两次握手,那么只要服务器发出确认数据包就会建立连接,但由于客户端此时并未响应服务器端的请求,那此时服务器端就会一直在等待客户端,这样服务器端就白白浪费了一定的资源。
若采用三次握手,服务器端没有收到来自客户端的再此确认,则就会知道客户端并没有要求建立请求,就不会浪费服务器的资源。
17、forward(转发) 和 redirect(重定向) 的区别?
地址栏URL显示:foward URL不会发生改变,redirect URL会发生改变;
数据共享:forward 可以共享 request 里的数据,redirect 不能共享;
效率:forward 比 redirect 效率高。
18、说一下 tcp 粘包是怎么产生的?
tcp 粘包可能发生在发送端或者接收端,分别来看两端产生粘包的原因:
发送端粘包:发送端需要等"发送缓冲区"满才发送出去,造成粘包;
接收方粘包:接收方不及时取"接收缓冲区"的包,造成多个包接收。
19、HTTP 502和503的区别?
从网络角度,502已经与后端建立了连接,但超时;503与后端连接未建立,超时。
20、ARP协议用来干嘛?
实现IP地址和MAC地址的转换。
由于篇幅原因,未完全展示
这份完整版的面试题PDF资料已经上传,朋友们如果需要可以留言给我免费领取【保证100%免费】