前端安全编码规范,2024金九银十网络安全大厂面试题来袭

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
![img](https://img-
blog.csdnimg.cn/img_convert/a271dbbdb4abdeba90b394d7f1129120.png)
![img](https://img-
blog.csdnimg.cn/img_convert/2f628b5261e9862e86e865755f42d17b.png)
![img](https://img-
blog.csdnimg.cn/img_convert/38fcb176e459ad0ae7b49028d9972a39.png)
![img](https://img-
blog.csdnimg.cn/img_convert/95a53f6dda867cb85a3b4b85cfc79c0e.png)
![img](https://img-
blog.csdnimg.cn/img_convert/2742b9bde06a5f7ddd40f81e7a1297d3.png)
![img](https://img-
blog.csdnimg.cn/img_convert/90f7088e398cc183edb0abbde7d6c870.png)

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上网络安全知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip204888 (备注网络安全)
![img](https://img-
blog.csdnimg.cn/img_convert/99bb783f3b534d6e2fb9ef8171891c8d.png)

正文

1.6 XSS的防御方式

1.HttpOnly

原理:浏览器禁止页面的Javascript访问带有HttpOnly属性的cookie。(实质解决的是:XSS后的cookie劫持攻击)如今已成为一种“标准”的做法

解决方案:

JavaEE给Cookie添加HttpOnly的方式为:

response.setHeader(“Set-Cookie”,“cookiename=value;
Path=/;Domain=domainvalue;Max-Age=seconds;HTTPOnly”);

2.输入检查(XSS Filter)

原理:让一些基于特殊字符的攻击失效。(常见的Web漏洞如XSS、SQLInjection等,都要求攻击者构造一些特殊字符)

  • 输入检查的逻辑,必须在服务端实现,因为客户端的检查也是很容易被攻击者绕过,现有的普遍做法是两端都做同样的检查,客户端的检查可以阻挡大部分误操作的正常用户,从而节约服务器的资源。

解决方案:

检查是否包含"JavaScript","“等敏感字符。以及对字符串中的<>:”&/'等特殊字符做处理

3.输出检查

原理:一般来说除了富文本输出之外,在变量输出到HTML页面时,使用编码或转义的方式来防御XSS攻击

解决方案:

  • 针对HTML代码的编码方式:HtmlEncode

  • PHP:htmlentities()和htmlspecialchars()两个函数

  • Javascript:JavascriptEncode(需要使用""对特殊字符进行转义,同时要求输出的变量必须在引号内部)

  • 在URL的path(路径)或者search(参数)中输出,使用URLEncode

4.更严格的做法

除了数字和字母外的所有字符,都使用十六进制的方式进行编码


2. 跨站点请求伪造(Cross Sites Request Forgery)

跨站点请求伪造,指利用用户身份操作用户账户的一种攻击方式,即攻击者诱使用户访问一个页面,就以该用户身份在第三方有害站点中执行了一次操作,泄露了用户的身份信息,接着攻击者就可以使用这个伪造的,但真实存在的身份信息,到某网站冒充用户执行恶意操作。

但是,攻击者只有预测到URL的所有参数与参数值,才能成功地伪造一个请求(当然了,他可以在安全站点里以自己的身份实际去操作一下,还是能拿到参数的);反之,攻击者无法攻击成功

下图通俗解释什么是CSRF ,又是如何给用户带来危害的

![](https://img-
blog.csdnimg.cn/img_convert/d10229be9e84f1451614e7ef60a6bdda.png)

参考上图,我们可以总结,完成一次CSRF攻击,必须满足两个条件

  • 用户登录受信任网站A,并且在本地生成Cookie

  • 在不登出网站A的情况下,访问有害网站B


2.1 CSRF的原理

CSRF攻击是攻击者利用**用户身份**操作用户账户的一种攻击方式

如电影速度与激情5中吉赛尔使用内裤获取巴西大佬指纹,最后成功使用伪造指纹的手法打开保险柜,CSRF只不过是网络上这个手法的实现。


2.2 CSRF的攻击方式

1.浏览器的Cookie策略

浏览器所持有的策略一般分为两种:

Session Cookie,临时Cookie。保存在浏览器进程的内存中,浏览器关闭了即失效。

Third-party Cookie,本地Cookie。服务器在Set-Cookie时指定了Expire
Time。过期了本地Cookie失效,则网站会要求用户重新登录。

* 在浏览网站的过程中,即使浏览器打开了Tab页,Session Cookie都是有效的,因此发起CSRF攻击是可行的。

2.P3P头的副作用

"P3P Header"是 “W3C” 制定的一项关于隐私的标准,全称是 “The Platform for Privacy
Preference”(隐私偏好平台)

如果网站返回给浏览器的 HTTP 头包含有 P3P 头,则在某种程度上来说,将允许 浏览器发送第三方 Cookie。在 IE
下即使是""、<script>等标签页将不再拦截第三方 Cookie 的发送。主要应用在类似广告等需要跨域访问的页面。

3.GET,POST请求

  • 这里有个误区

大多数 CSRF 攻击,都是通过 、 、

构造一个 POST
请求,只需要在一个不可见的iframe窗口中,构造一个form表单,然后使用JavaScript自动提交这个表单。那么整个自动提交表单的过程,对于用户来说就是不可见的。


2.3 CSRF的防御方式

1.验证码

原理:

CSRF攻击过程中,用户在不知情的情况下构造了网络请求,添加验证码后,强制用户必须与应用进行交互

  • 优点:简洁而有效

  • 缺点:网站不能给所有的操作都加上验证码

2.Referer Check

原理:

  • 利用HTTP头中的Referer判断请求来源是否合法

  • Referer首部包含了当前请求页面的来源页面的地址,一般情况下Referer的来源页就是发起请求的那个页面,如果是在iframe中发起的请求,那么对应的页面URL就是iframe的src

  • 优点:简单易操作(只需要在最后给所有安全敏感的请求统一添加一个拦截器来检查Referer的值就行)

  • 缺点:服务器并非什么时候都能取到Referer

1.很多出于保护用户隐私的考虑,限制了Referer的发送。

2.比如从HTTPS跳转到HTTP,出于安全的考虑,浏览器不会发送Referer

3.使用Anti CSRF Token

原理:把参数加密,或者使用一些随机数,从而让攻击者无法猜测到参数值,也就无法构造请求的 URL,也就无法发起 CSRF 攻击。

例子(增加token):

  • 比如一个删除操作的URL是:http://host/path/delete?uesrname=abc&item=123

  • 保持原参数不变,新增一个参数Token,Token值是随机的,不可预测

  • http://host/path/delete?username=abc&item=123&token=[random(seed)]

  • 优点:比检查Referer方法更安全,并且不涉及用户隐私

  • 缺点:

加密

1. 加密后的URL非常难读,对用户非常不友好

2. 加密的参数每次都在改变,导致用户无法对页面进行搜索

3. 普通参数也会被加密或哈希,将会给DBA工作带来很大的困扰,因为数据分析常常需要用到参数的明文

token

1. 对所有的请求都添加Token比较困难

需要注意的点

  1. Token需要足够随机,必须用足够安全的随机数生成算法

  2. Token应该为用户和服务器所共同持有,不能被第三方知晓

  3. Token可以放在用户的Session或者浏览器的Cookie中

  4. 尽量把Token放在表单中,把敏感操作由GET改为POST,以form表单的形式提交,可以避免Token泄露(比如一个页面:http://host/path/manage?username=abc&token=[random],在此页面用户需要在这个页面提交表单或者单击“删除”按钮,才能完成删除操作,在这种场景下,如果这个页面包含了一张攻击者能指定地址的图片<img src="http://evil.com/notexist" />,则这个页面地址会作为HTTP请求的Refer发送到evil.com的服务器上,从而导致Token泄露)

2.4 XSRF

当网站同时存在XSS和CSRF漏洞时,XSS可以模拟客户端浏览器执行任意操作,在XSS攻击下,攻击者完全可以请求页面后,读取页面内容中的Token值,然后再构造出一个合法的请求

3. 点击劫持(ClickJacking)

点击劫持是一种视觉上的欺骗手段。攻击者使用一个透明的、不可见的iframe,覆盖在一个网页上,然后诱使用户在网页上进行操作,此时用户将在不知情的情况下点击透明的iframe页面。通过调整iframe页面的位置,可以诱使用户恰好点击在iframe页面的一些功能性按钮上。

比如,程序员小王在访问A网页时,点击空白区域,浏览器却意外打开了xx新葡京赌场的页面,于是他在A网页打开控制台,在空白区域发现了一个透明的iframe,该iframe嵌入了一个第三方网页的URL

3.1 点击劫持防御方式

1.X-Frame-Options HTTP响应头是用来给浏览器指示允许一个页面能否在<frame>、<iframe>、<object>中展现的标记

有三个可选的值
  1. DENY:浏览器会拒绝当前页面加载任何frame页面(即使是相同域名的页面也不允许)

  2. SAMEORIGIN:允许加载frame页面,但是frame页面的地址只能为同源域名下的页面

  3. ALLOW-FROM:可以加载指定来源的frame页面(可以定义frame页面的地址)

2.禁止iframe的嵌套

本人从事网路安全工作12年,曾在2个大厂工作过,安全服务、售后服务、售前、攻防比赛、安全讲师、销售经理等职位都做过,对这个行业了解比较全面。

最近遍览了各种网络安全类的文章,内容参差不齐,其中不伐有大佬倾力教学,也有各种不良机构浑水摸鱼,在收到几条私信,发现大家对一套完整的系统的网络安全从学习路线到学习资料,甚至是工具有着不小的需求。

最后,我将这部分内容融会贯通成了一套282G的网络安全资料包,所有类目条理清晰,知识点层层递进,需要的小伙伴可以点击下方小卡片领取哦!下面就开始进入正题,如何从一个萌新一步一步进入网络安全行业。

![](https://img-
blog.csdnimg.cn/img_convert/311903982dea1d8a5d2c98fc271b5b41.jpeg)

学习路线图

其中最为瞩目也是最为基础的就是网络安全学习路线图,这里我给大家分享一份打磨了3个月,已经更新到4.0版本的网络安全学习路线图。

相比起繁琐的文字,还是生动的视频教程更加适合零基础的同学们学习,这里也是整理了一份与上述学习路线一一对应的网络安全视频教程。

![](https://img-
blog.csdnimg.cn/img_convert/1ddfaf7dc5879b1120e31fafa1ad4dc7.jpeg)

网络安全工具箱

当然,当你入门之后,仅仅是视频教程已经不能满足你的需求了,你肯定需要学习各种工具的使用以及大量的实战项目,这里也分享一份我自己整理的网络安全入门工具以及使用教程和实战。

![](https://img-
blog.csdnimg.cn/img_convert/bcd1787ce996787388468bb227d8f959.jpeg)

项目实战

最后就是项目实战,这里带来的是SRC资料 &HW资料,毕竟实战是检验真理的唯一标准嘛~

![](https://img-
blog.csdnimg.cn/img_convert/35fc46df24091ce3c9a5032a9919b755.jpeg)

面试题

归根结底,我们的最终目的都是为了就业,所以这份结合了多位朋友的亲身经验打磨的面试题合集你绝对不能错过!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注网络安全)
![img](https://img-
blog.csdnimg.cn/img_convert/516331f2b775b682a788014dbc6a4c1a.png)

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

最后就是项目实战,这里带来的是SRC资料 &HW资料,毕竟实战是检验真理的唯一标准嘛~

![](https://img-
blog.csdnimg.cn/img_convert/35fc46df24091ce3c9a5032a9919b755.jpeg)

面试题

归根结底,我们的最终目的都是为了就业,所以这份结合了多位朋友的亲身经验打磨的面试题合集你绝对不能错过!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注网络安全)
[外链图片转存中…(img-9Gxz76Ev-1713225961683)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

学习网络安全技术的方法无非三种:

第一种是报网络安全专业,现在叫网络空间安全专业,主要专业课程:程序设计、计算机组成原理原理、数据结构、操作系统原理、数据库系统、 计算机网络、人工智能、自然语言处理、社会计算、网络安全法律法规、网络安全、内容安全、数字取证、机器学习,多媒体技术,信息检索、舆情分析等。

第二种是自学,就是在网上找资源、找教程,或者是想办法认识一-些大佬,抱紧大腿,不过这种方法很耗时间,而且学习没有规划,可能很长一段时间感觉自己没有进步,容易劝退。

如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

第三种就是去找培训。

image.png

接下来,我会教你零基础入门快速入门上手网络安全。

网络安全入门到底是先学编程还是先学计算机基础?这是一个争议比较大的问题,有的人会建议先学编程,而有的人会建议先学计算机基础,其实这都是要学的。而且这些对学习网络安全来说非常重要。但是对于完全零基础的人来说又或者急于转行的人来说,学习编程或者计算机基础对他们来说都有一定的难度,并且花费时间太长。

第一阶段:基础准备 4周~6周

这个阶段是所有准备进入安全行业必学的部分,俗话说:基础不劳,地动山摇
image.png

第二阶段:web渗透

学习基础 时间:1周 ~ 2周:

① 了解基本概念:(SQL注入、XSS、上传、CSRF、一句话木马、等)为之后的WEB渗透测试打下基础。
② 查看一些论坛的一些Web渗透,学一学案例的思路,每一个站点都不一样,所以思路是主要的。
③ 学会提问的艺术,如果遇到不懂得要善于提问。
image.png

配置渗透环境 时间:3周 ~ 4周:

① 了解渗透测试常用的工具,例如(AWVS、SQLMAP、NMAP、BURP、中国菜刀等)。
② 下载这些工具无后门版本并且安装到计算机上。
③ 了解这些工具的使用场景,懂得基本的使用,推荐在Google上查找。

渗透实战操作 时间:约6周:

① 在网上搜索渗透实战案例,深入了解SQL注入、文件上传、解析漏洞等在实战中的使用。
② 自己搭建漏洞环境测试,推荐DWVA,SQLi-labs,Upload-labs,bWAPP。
③ 懂得渗透测试的阶段,每一个阶段需要做那些动作:例如PTES渗透测试执行标准。
④ 深入研究手工SQL注入,寻找绕过waf的方法,制作自己的脚本。
⑤ 研究文件上传的原理,如何进行截断、双重后缀欺骗(IIS、PHP)、解析漏洞利用(IIS、Nignix、Apache)等,参照:上传攻击框架。
⑥ 了解XSS形成原理和种类,在DWVA中进行实践,使用一个含有XSS漏洞的cms,安装安全狗等进行测试。
⑦ 了解一句话木马,并尝试编写过狗一句话。
⑧ 研究在Windows和Linux下的提升权限,Google关键词:提权
image.png
以上就是入门阶段

第三阶段:进阶

已经入门并且找到工作之后又该怎么进阶?详情看下图
image.png

给新手小白的入门建议:
新手入门学习最好还是从视频入手进行学习,视频的浅显易懂相比起晦涩的文字而言更容易吸收,这里我给大家准备了一套网络安全从入门到精通的视频学习资料包免费领取哦!

如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

  • 21
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值