客户端|这可能是你见过最全面的网络安全面试题了——入门篇

客户端|这可能是你见过最全面的网络安全面试题了——入门篇

文章图片

客户端|这可能是你见过最全面的网络安全面试题了——入门篇

文章图片


防范常见的 Web 攻击
什么是 SQL 注入攻击攻击者在 HTTP 请求中注入恶意的 SQL 代码 , 服务器使用参数构建数据库 SQL 命令时 , 恶意SQL 被一起构造 , 并在数据库中执行 。
用户登录 , 输入用户名 lianggzone , 密码 ‘ or ‘1’=’1, 如果此时使用参数构造的方式 , 就会出
select * from user where name = ‘lianggzone’ and password = ‘’ or ‘1’=‘1’

不管用户名和密码是什么内容 , 使查询出来的用户列表不为空 。 如何防范 SQL 注入攻击使用预编译的 PrepareStatement 是必须的 , 但是一般我们会从两个方面同时入手 。
Web 端
1)有效性检验 。
2)限制字符串输入的长度 。
服务端1)不用拼接 SQL 字符串 。
2)使用预编译的 PrepareStatement 。 3)有效性检验 。 (为什么服务端还要做有效性检验?第一准则 , 外部都是不可信的 , 防止攻击者绕过 Web 端请求)
4)过滤 SQL 需要的参数中的特殊字符 。 比如单引号、双引号 。


下文内容涉及到:面试题(含答案)+学习笔记+电子书籍+学习视频 , 需要的小伙伴私?“安全”获取
什么是 XSS 攻击
跨站点脚本攻击 , 指攻击者通过篡改网页 , 嵌入恶意脚本程序 , 在用户浏览网页时 , 控制用户浏览器进行恶意操作的一种攻击方式 。 如何防范 XSS 攻击
1)前端 , 服务端 , 同时需要字符串输入的长度限制 。
2)前端 , 服务端 , 同时需要对 HTML 转义处理 。 将其中的”<””>”等特殊字符进行转义编码 。
防 XSS 的核心是必须对输入的数据做过滤处理 。
什么是 CSRF 攻击
跨站点请求伪造 , 指攻击者通过跨站请求 , 以合法的用户的身份进行非法操作 。 可以这么理解 CSRF 攻击:攻击者盗用你的身份 , 以你的名义向第三方网站发送恶意请求 。 CRSF 能做的事情包括利用你的身份发邮件 , 发短信 , 进行交易转账 , 甚至盗取账号信息 。 如何防范
CSRF 攻击安全框架 , 例如 Spring Security 。
token 机制 。 在 HTTP 请求中进行 token 验证 , 如果请求中没有 token 或者 token 内容不正确 , 则认为 CSRF 攻击而拒绝该请求 。
验证码 。 通常情况下 , 验证码能够很好的遏制 CSRF 攻击 , 但是很多情况下 , 出于用户体验考虑 , 验证码只能作为一种辅助手段 , 而不是最主要的解决方案 。
referer 识别 。 在 HTTP Header 中有一个字段 Referer , 它记录了 HTTP 请求的来源地址 。 如果 Referer 是其他网站 , 就有可能是 CSRF 攻击 , 则拒绝该请求 。 但是 , 服务器并非都能取到 Referer 。 很多用户出于隐私保护的考虑 , 限制了 Referer 的发送 。 在某些情况下 , 浏览器也不会发送 Referer , 例如 HTTPS 跳转到 HTTP 。
【客户端|这可能是你见过最全面的网络安全面试题了——入门篇】1)验证请求来源地址;
2)关键操作添加验证码;
3)在请求地址添加 token 并验证 。
什么是文件上传漏洞文件上传漏洞 , 指的是用户上传一个可执行的脚本文件 , 并通过此脚本文件获得了执行服务端命令的能力 。
许多第三方框架、服务 , 都曾经被爆出文件上传漏洞 , 比如很早之前的 Struts2 , 以及富文本编辑器等等 , 可被攻击者上传恶意代码 , 有可能服务端就被人黑了 。 如何防范文件上传漏洞文件上传的目录设置为不可执行 。