湖北微网站建设多少钱seo优化方案

张小明 2026/1/15 19:02:34
湖北微网站建设多少钱,seo优化方案,网站须知,pc建站网站Web 安全地对于 Web 从业人员来说是一个非常重要的课题#xff0c;所以在这里总结一下 Web 相关的安全攻防知识#xff0c;希望以后不要再踩雷#xff0c;也希望对看到这篇文章的同学有所帮助。今天这边文章主要的内容就是分析几种常见的攻击的类型以及防御的方法。 也许你对…Web 安全地对于 Web 从业人员来说是一个非常重要的课题所以在这里总结一下 Web 相关的安全攻防知识希望以后不要再踩雷也希望对看到这篇文章的同学有所帮助。今天这边文章主要的内容就是分析几种常见的攻击的类型以及防御的方法。也许你对所有的安全问题都有一定的认识但最主要的还是在编码设计的过程中时刻绷紧安全那根弦需要反复推敲每个实现细节安全无小事。本文代码 Demo 都是基于 Node.js 讲解其他服务端语言同样可以参考。XSS首先说下最常见的 XSS 漏洞XSS (Cross Site Script)跨站脚本攻击因为缩写和 CSS (Cascading Style Sheets) 重叠所以只能叫 XSS。XSS 的原理是恶意攻击者往 Web 页面里插入恶意可执行网页脚本代码当用户浏览该页之时嵌入其中 Web 里面的脚本代码会被执行从而可以达到攻击者盗取用户信息或其他侵犯用户安全隐私的目的。XSS 的攻击方式千变万化但还是可以大致细分为几种类型。非持久型 XSS非持久型 XSS 漏洞也叫反射型 XSS 漏洞一般是通过给别人发送带有恶意脚本代码参数的 URL当 URL 地址被打开时特有的恶意代码参数被 HTML 解析、执行。举一个例子比如你的 Web 页面中包含有以下代码1 2 3 4 5 6 7 8 9 10 11Select your language: select script document.write( option value1 location.href.substring(location.href.indexOf(default) 8) /option ); document.write(option value2English/option); /script /select攻击者可以直接通过 URL 注入可执行的脚本代码。非持久型 XSS 漏洞攻击有以下几点特征即时性不经过服务器存储直接通过 HTTP 的 GET 和 POST 请求就能完成一次攻击拿到用户隐私数据。攻击者需要诱骗点击反馈率低所以较难发现和响应修复盗取用户敏感保密信息为了防止出现非持久型 XSS 漏洞需要确保这么几件事情Web 页面渲染的所有内容或者渲染的数据都必须来自于服务端。尽量不要从 URLdocument.referrerdocument.forms 等这种 DOM API 中获取数据直接渲染。尽量不要使用 eval, new Function()document.write()document.writeln()window.setInterval()window.setTimeout()innerHTMLdocument.creteElement() 等可执行字符串的方法。如果做不到以上几点也必须对涉及 DOM 渲染的方法传入的字符串参数做 escape 转义。前端渲染的时候对任何的字段都需要做 escape 转义编码。escape 转义的目的是将一些构成 HTML 标签的元素转义比如 空格 等转义成 等显示转义字符。有很多开源的工具可以协助我们做 escape 转义。持久型 XSS持久型 XSS 漏洞也被称为存储型 XSS 漏洞一般存在于 Form 表单提交等交互功能如发帖留言提交文本信息等黑客利用的 XSS 漏洞将内容经正常功能提交进入数据库持久保存当前端页面获得后端从数据库中读出的注入代码时恰好将其渲染执行。主要注入页面方式和非持久型 XSS 漏洞类似只不过持久型的不是来源于 URLreffererforms 等而是来源于后端从数据库中读出来的数据。持久型 XSS 攻击不需要诱骗点击黑客只需要在提交表单的地方完成注入即可但是这种 XSS 攻击的成本相对还是很高。攻击成功需要同时满足以下几个条件POST 请求提交表单后端没做转义直接入库。后端从数据库中取出数据没做转义直接输出给前端。前端拿到后端数据没做转义直接渲染成 DOM。持久型 XSS 有以下几个特点持久性植入在数据库中危害面广甚至可以让用户机器变成 DDoS 攻击的肉鸡。盗取用户敏感私密信息为了防止持久型 XSS 漏洞需要前后端共同努力后端在入库前应该选择不相信任何前端数据将所有的字段统一进行转义处理。后端在输出给前端数据统一进行转义处理。前端在渲染页面 DOM 的时候应该选择不相信任何后端数据任何字段都需要做转义处理。基于字符集的 XSS其实现在很多的浏览器以及各种开源的库都专门针对了 XSS 进行转义处理尽量默认抵御绝大多数 XSS 攻击但是还是有很多方式可以绕过转义规则让人防不胜防。比如「基于字符集的 XSS 攻击」就是绕过这些转义处理的一种攻击方式比如有些 Web 页面字符集不固定用户输入非期望字符集的字符有时会绕过转义过滤规则。以基于 utf-7 的 XSS 为例utf-7 是可以将所有的 unicode 通过 7bit 来表示的一种字符集 (但现在已经从 Unicode 规格中移除)。这个字符集为了通过 7bit 来表示所有的文字, 除去数字和一部分的符号,其它的部分将都以 base64 编码为基础的方式呈现。1 2 3scriptalert(xss)/script 可以被解释为 ADw-scriptAD4-alert(ACI-xssACI-)ADw-/scriptAD4-可以形成「基于字符集的 XSS 攻击」的原因是由于浏览器在 meta 没有指定 charset 的时候有自动识别编码的机制所以这类攻击通常就是发生在没有指定或者没来得及指定 meta 标签的 charset 的情况下。所以我们有什么办法避免这种 XSS 呢记住指定XML 中不仅要指定字符集为 utf-8而且标签要闭合基于 Flash 的跨站 XSS基于 Flash 的跨站 XSS 也是属于反射型 XSS 的一种虽然现在开发 ActionScript 的产品线几乎没有了但还是提一句吧AS 脚本可以接受用户输入并操作 cookie攻击者可以配合其他 XSS持久型或者非持久型方法将恶意 swf 文件嵌入页面中。主要是因为 AS 有时候需要和 JS 传参交互攻击者会通过恶意的 XSS 注入篡改参数窃取并操作cookie。避免方法严格管理 cookie 的读写权限对 Flash 能接受用户输入的参数进行过滤 escape 转义处理未经验证的跳转 XSS有一些场景是后端需要对一个传进来的待跳转的 URL 参数进行一个 302 跳转可能其中会带有一些用户的敏感cookie信息。如果服务器端做302 跳转跳转的地址来自用户的输入攻击者可以输入一个恶意的跳转地址来执行脚本。这时候需要通过以下方式来防止这类漏洞对待跳转的 URL 参数做白名单或者某种规则过滤后端注意对敏感信息的保护, 比如 cookie 使用来源验证。CSRFCSRFCross-Site Request Forgery中文名称跨站请求伪造攻击那么 CSRF 到底能够干嘛呢你可以这样简单的理解攻击者可以盗用你的登陆信息以你的身份模拟发送各种请求。攻击者只要借助少许的社会工程学得诡计例如通过 QQ 等聊天软件发送的链接(有些还伪装成短域名用户无法分辨)攻击者就能迫使 Web 应用的用户去执行攻击者预设的操作。例如当用户登录网络银行去查看其存款余额在他没有退出时就点击了一个 QQ 好友发来的链接那么该用户银行帐户中的资金就有可能被转移到攻击者指定的帐户中。所以遇到 CSRF 攻击时将对终端用户的数据和操作指令构成严重的威胁。当受攻击的终端用户具有管理员帐户的时候CSRF 攻击将危及整个 Web 应用程序。CSRF 原理下图大概描述了 CSRF 攻击的原理可以理解为有一个小偷在你配钥匙的地方得到了你家的钥匙然后拿着要是去你家想偷什么偷什么。完成 CSRF 攻击必须要有三个条件用户已经登录了站点 A并在本地记录了 cookie在用户没有登出站点 A 的情况下也就是 cookie 生效的情况下访问了恶意攻击者提供的引诱危险站点 B (B 站点要求访问站点A)。站点 A 没有做任何 CSRF 防御你也许会问「如果我不满足以上三个条件中的任意一个就不会受到 CSRF 的攻击」。其实可以这么说的但你不能保证以下情况不会发生你不能保证你登录了一个网站后不再打开一个 tab 页面并访问另外的网站特别现在浏览器都是支持多 tab 的。你不能保证你关闭浏览器了后你本地的 cookie 立刻过期你上次的会话已经结束。上图中所谓的攻击网站 B可能是一个存在其他漏洞的可信任的经常被人访问的网站。预防 CSRFCSRF 的防御可以从服务端和客户端两方面着手防御效果是从服务端着手效果比较好现在一般的 CSRF 防御也都在服务端进行。服务端的预防 CSRF 攻击的方式方法有多种但思路上都是差不多的主要从以下两个方面入手正确使用 GETPOST 请求和 cookie在非 GET 请求中增加 token一般而言普通的 Web 应用都是以 GET、POST 请求为主还有一种请求是 cookie 方式。我们一般都是按照如下规则设计应用的请求GET 请求常用在查看列举展示等不需要改变资源属性的时候数据库 query 查询的时候POST 请求常用在 From 表单提交改变一个资源的属性或者做其他一些事情的时候数据库有 insert、update、delete 的时候当正确的使用了 GET 和 POST 请求之后剩下的就是在非 GET 方式的请求中增加随机数这个大概有三种方式来进行为每个用户生成一个唯一的 cookie token所有表单都包含同一个伪随机值这种方案最简单因为攻击者不能获得第三方的 cookie(理论上)所以表单中的数据也就构造失败但是由于用户的 cookie 很容易由于网站的 XSS 漏洞而被盗取所以这个方案必须要在没有 XSS 的情况下才安全。每个 POST 请求使用验证码这个方案算是比较完美的但是需要用户多次输入验证码用户体验比较差所以不适合在业务中大量运用。渲染表单的时候为每一个表单包含一个 csrfToken提交表单的时候带上 csrfToken然后在后端做 csrfToken 验证。CSRF 的防御可以根据应用场景的不同自行选择。CSRF 的防御工作确实会在正常业务逻辑的基础上带来很多额外的开发量但是这种工作量是值得的毕竟用户隐私以及财产安全是产品最基础的根本。SQL 注入SQL 注入漏洞SQL Injection是 Web 开发中最常见的一种安全漏洞。可以用它来从数据库获取敏感信息或者利用数据库的特性执行添加用户导出文件等一系列恶意操作甚至有可能获取数据库乃至系统用户最高权限。而造成 SQL 注入的原因是因为程序没有有效的转义过滤用户的输入使攻击者成功的向服务器提交恶意的 SQL 查询代码程序在接收后错误的将攻击者的输入作为查询语句的一部分执行导致原始的查询逻辑被改变额外的执行了攻击者精心构造的恶意代码。很多 Web 开发者没有意识到 SQL 查询是可以被篡改的从而把 SQL 查询当作可信任的命令。殊不知SQL 查询是可以绕开访问控制从而绕过身份验证和权限检查的。更有甚者有可能通过 SQL 查询去运行主机系统级的命令。SQL 注入原理下面将通过一些真实的例子来详细讲解 SQL 注入的方式的原理。考虑以下简单的管理员登录表单1 2 3 4 5form action/login methodPOST pUsername: input typetext nameusername //p pPassword: input typepassword namepassword //p pinput typesubmit value登陆 //p /form后端的 SQL 语句可能是如下这样的1 2 3 4 5 6 7let querySQL SELECT * FROM user WHERE username${username} AND psw${password} ; // 接下来就是执行 sql 语句...目的就是来验证用户名和密码是不是正确按理说乍一看上面的 SQL 语句也没什么毛病确实是能够达到我们的目的可是你只是站在用户会老老实实按照你的设计来输入的角度来看问题如果有一个恶意攻击者输入的用户名是 zoumiaojiang’ OR 1 1 --密码随意输入就可以直接登入系统了。WFT!冷静下来思考一下我们之前预想的真实 SQL 语句是:1SELECT * FROM user WHERE usernamezoumiaojiang AND pswmypassword可以恶意攻击者的奇怪用户名将你的 SQL 语句变成了如下形式1SELECT * FROM user WHERE usernamezoumiaojiang OR 1 1 -- AND pswxxxx在 SQL 中-- 是注释后面的内容的意思所以查询语句就变成了1SELECT * FROM user WHERE usernamezoumiaojiang OR 1 1这条 SQL 语句的查询条件永远为真所以意思就是恶意攻击者不用我的密码就可以登录进我的账号然后可以在里面为所欲为然而这还只是最简单的注入牛逼的 SQL 注入高手甚至可以通过 SQL 查询去运行主机系统级的命令将你主机里的内容一览无余这里我也没有这个能力讲解的太深入毕竟不是专业研究这类攻击的但是通过以上的例子已经了解了 SQL 注入的原理我们基本已经能找到防御 SQL 注入的方案了。如何预防 SQL 注入防止 SQL 注入主要是不能允许用户输入的内容影响正常的 SQL 语句的逻辑当用户的输入的信息将要用来拼接 SQL 语句的话我们应该永远选择不相信任何内容都必须进行转义过滤当然做到这个还是不够的下面列出防御 SQL 注入的几点注意事项严格限制Web应用的数据库的操作权限给此用户提供仅仅能够满足其工作的最低权限从而最大限度的减少注入攻击对数据库的危害后端代码检查输入的数据是否符合预期严格限制变量的类型例如使用正则表达式进行一些匹配处理。对进入数据库的特殊字符\*; 等进行转义处理或编码转换。基本上所有的后端语言都有对字符串进行转义处理的方法比如 lodash 的 lodash._escapehtmlchar 库。所有的查询语句建议使用数据库提供的参数化查询接口参数化的语句使用参数而不是将用户输入变量嵌入到 SQL 语句中即不要直接拼接 SQL 语句。例如 Node.js 中的 mysqljs 库的 query 方法中的 ? 占位参数。1mysql.query(SELECT * FROM user WHERE username ? AND psw ?, [username, psw]);在应用发布之前建议使用专业的 SQL 注入检测工具进行检测以及时修补被发现的 SQL 注入漏洞。网上有很多这方面的开源工具例如 sqlmap、SQLninja 等。避免网站打印出 SQL 错误信息比如类型错误、字段不匹配等把代码里的 SQL 语句暴露出来以防止攻击者利用这些错误信息进行 SQL 注入。不要过于细化返回的错误信息如果目的是方便调试就去使用后端日志不要在接口上过多的暴露出错信息毕竟真正的用户不关心太多的技术细节只要话术合理就行。碰到要操作的数据库的代码一定要慎重小心使得万年船多找几个人多来几次 code review将问题都暴露出来而且要善于利用工具操作数据库相关的代码属于机密没事不要去各种论坛晒自家站点的 SQL 语句万一被人盯上了呢命令行注入命令行注入漏洞指的是攻击者能够通过 HTTP 请求直接侵入主机执行攻击者预设的 shell 命令听起来好像匪夷所思这往往是 Web 开发者最容易忽视但是却是最危险的一个漏洞之一看一个实例假如现在需要实现一个需求用户提交一些内容到服务器然后在服务器执行一些系统命令去产出一个结果返回给用户接口的部分实现如下1 2 3 4 5// 以 Node.js 为例假如在接口中需要从 github 下载用户指定的 repo const exec require(mz/child_process).exec; let params {/* 用户输入的参数 */};exec(git clone ${params.repo} /some/path);这段代码确实能够满足业务需求正常的用户也确实能从指定的 git repo 上下载到想要的代码可是和 SQL 注入一样这段代码在恶意攻击者眼中简直就是香饽饽。如果 params.repo 传入的是https://github.com/zoumiaojiang/zoumiaojiang.github.io.git 当然没问题了。可是如果 params.repo 传入的是https://github.com/xx/xx.git rm -rf /* 恰好你的服务是用 root 权限起的就惨了。具体恶意攻击者能用命令行注入干什么也像 SQL 注入一样手法是千变万化的比如「反弹 shell 注入」等但原理都是一样的我们绝对有能力防止命令行注入发生。防止命令行注入需要做到以下几件事情后端对前端提交内容需要完全选择不相信并且对其进行规则限制比如正则表达式。在调用系统命令前对所有传入参数进行命令行参数转义过滤。不要直接拼接命令语句借助一些工具做拼接、转义预处理例如 Node.js 的 shell-escape npm 包。还是前面的例子我们可以做到如下1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22const exec require(mz/child_process).exec;// 借助 shell-escape npm 包解决参数转义过滤问题const shellescape require(‘shell-escape’);let params {/* 用户输入的参数 */};// 先过滤一下参数让参数符合预期if (!/正确的表达式/.test(params.repo)) {return;}let cmd shellescape([‘git’,‘clone’,params.repo,‘/some/path’]);// cmd 的值: git clone ‘https://github.com/xx/xx.git rm -rf / ’ /some/path// 这样就不会被注入成功了。exec(cmd);无论是在何种后端语言环境中凡是涉及到代码调用系统 shell 命令的时候都一定要谨慎。DDoS 攻击DDoS 又叫分布式拒绝服务全称 Distributed Denial of Service其原理就是利用大量的请求造成资源过载导致服务不可用这个攻击应该不能算是安全问题这应该算是一个另类的存在因为这种攻击根本就是耍流氓的存在「伤敌一千自损八百」的行为。出于保护 Web App 不受攻击的攻防角度还是介绍一下 DDoS 攻击吧毕竟也是挺常见的。DDoS 攻击可以理解为「你开了一家店隔壁家点看不惯就雇了一大堆黑社会人员进你店里干坐着也不消费其他客人也进不来导致你营业惨淡」。为啥说 DDoS 是个「伤敌一千自损八百」的行为呢毕竟隔壁店还是花了不少钱雇黑社会但是啥也没得到不是DDoS 攻击的目的基本上就以下几个深仇大恨就是要干死你敲诈你不给钱就干你忽悠你不买我防火墙服务就会有“人”继续干你也许你的站点遭受过 DDoS 攻击具体什么原因怎么解读见仁见智。DDos 攻击从层次上可分为网络层攻击与应用层攻击从攻击手法上可分为快型流量攻击与慢型流量攻击但其原理都是造成资源过载导致服务不可用。网络层 DDoS网络层 DDos 攻击包括 SYN Flood、ACK Flood、UDP Flood、ICMP Flood 等。SYN Flood 攻击SYN flood 攻击主要利用了 TCP 三次握手过程中的 Bug我们都知道 TCP 三次握手过程是要建立连接的双方发送 SYNSYN ACKACK 数据包而当攻击方随意构造源 IP 去发送 SYN 包时服务器返回的 SYN ACK 就不能得到应答因为 IP 是随意构造的此时服务器就会尝试重新发送并且会有至少 30s 的等待时间导致资源饱和服务不可用此攻击属于慢性 DDoS 攻击。ACK Flood 攻击ACK Flood 攻击是在 TCP 连接建立之后所有的数据传输 TCP 报文都是带有 ACK 标志位的主机在接收到一个带有 ACK 标志位的数据包的时候需要检查该数据包所表示的连接四元组是否存在如果存在则检查该数据包所表示的状态是否合法然后再向应用层传递该数据包。如果在检查中发现该数据包不合法例如该数据包所指向的目的端口在本机并未开放则主机操作系统协议栈会回应 RST 包告诉对方此端口不存在。UDP Flood 攻击UDP flood 攻击是由于 UDP 是一种无连接的协议因此攻击者可以伪造大量的源 IP 地址去发送 UDP 包此种攻击属于大流量攻击。正常应用情况下UDP 包双向流量会基本相等因此发起这种攻击的攻击者在消耗对方资源的时候也在消耗自己的资源。ICMP Flood 攻击ICMP Flood 攻击属于大流量攻击其原理就是不断发送不正常的 ICMP 包所谓不正常就是 ICMP 包内容很大导致目标带宽被占用但其本身资源也会被消耗。目前很多服务器都是禁 ping 的在防火墙外可以屏蔽 ICMP 包因此这种攻击方式已经落伍。网络层 DDoS 防御网络层的 DDoS 攻击究其本质其实是无法防御的我们能做得就是不断优化服务本身部署的网络架构以及提升网络带宽。当然还是做好以下几件事也是有助于缓解网络层 DDoS 攻击的冲击网络架构上做好优化采用负载均衡分流。确保服务器的系统文件是最新的版本并及时更新系统补丁。添加抗 DDos 设备进行流量清洗。限制同时打开的 SYN 半连接数目缩短 SYN 半连接的 Timeout 时间。限制单 IP 请求频率。防火墙等防护设置禁止 ICMP 包等。严格限制对外开放的服务器的向外访问。运行端口映射程序或端口扫描程序要认真检查特权端口和非特权端口。关闭不必要的服务。认真检查网络设备和主机/服务器系统的日志。只要日志出现漏洞或是时间变更,那这台机器就可能遭到了攻击。限制在防火墙外与网络文件共享。这样会给黑客截取系统文件的机会主机的信息暴露给黑客无疑是给了对方入侵的机会。加钱堆机器。。报警。。应用层 DDoS应用层 DDoS 攻击不是发生在网络层是发生在 TCP 建立握手成功之后应用程序处理请求的时候现在很多常见的 DDoS 攻击都是应用层攻击。应用层攻击千变万化目的就是在网络应用层耗尽你的带宽下面列出集中典型的攻击类型。CC 攻击当时绿盟为了防御 DDoS 攻击研发了一款叫做 Collapasar 的产品能够有效的防御 SYN Flood 攻击。黑客为了挑衅研发了一款 Challenge Collapasar 攻击工具简称 CC。CC 攻击的原理就是针对消耗资源比较大的页面不断发起不正常的请求导致资源耗尽。因此在发送 CC 攻击前我们需要寻找加载比较慢消耗资源比较多的网页比如需要查询数据库的页面、读写硬盘文件的等。通过 CC 攻击使用爬虫对某些加载需要消耗大量资源的页面发起 HTTP 请求。DNS FloodDNS Flood 攻击采用的方法是向被攻击的服务器发送大量的域名解析请求通常请求解析的域名是随机生成或者是网络世界上根本不存在的域名被攻击的DNS 服务器在接收到域名解析请求的时候首先会在服务器上查找是否有对应的缓存如果查找不到并且该域名无法直接由服务器解析的时候DNS 服务器会向其上层 DNS 服务器递归查询域名信息。域名解析的过程给服务器带来了很大的负载每秒钟域名解析请求超过一定的数量就会造成 DNS 服务器解析域名超时。根据微软的统计数据一台 DNS 服务器所能承受的动态域名查询的上限是每秒钟 9000 个请求。而我们知道在一台 P3 的 PC 机上可以轻易地构造出每秒钟几万个域名解析请求足以使一台硬件配置极高的 DNS 服务器瘫痪由此可见 DNS 服务器的脆弱性。HTTP 慢速连接攻击针对 HTTP 协议先建立起 HTTP 连接设置一个较大的 Conetnt-Length每次只发送很少的字节让服务器一直以为 HTTP 头部没有传输完成这样连接一多就很快会出现连接耗尽。应用层 DDoS 防御判断 User-Agent 字段不可靠因为可以随意构造针对 IP cookie限制访问频率由于 cookie 可以更改IP 可以使用代理或者肉鸡也不可靠)关闭服务器最大连接数等合理配置中间件缓解 DDoS 攻击。请求中添加验证码比如请求中有数据库操作的时候。编写代码时尽量实现优化并合理使用缓存技术减少数据库的读取操作。加钱堆机器。。报警。。应用层的防御有时比网络层的更难因为导致应用层被 DDoS 攻击的因素非常多有时往往是因为程序员的失误导致某个页面加载需要消耗大量资源有时是因为中间件配置不当等等。而应用层 DDoS 防御的核心就是区分人与机器爬虫因为大量的请求不可能是人为的肯定是机器构造的。因此如果能有效的区分人与爬虫行为则可以很好地防御此攻击。其他 DDoS 攻击发起 DDoS 也是需要大量的带宽资源的但是互联网就像森林林子大了什么鸟都有DDoS 攻击者也能找到其他的方式发起廉价并且极具杀伤力的 DDoS 攻击。利用 XSS举个例子如果 12306 页面有一个 XSS 持久型漏洞被恶意攻击者发现只需在春节抢票期间在这个漏洞中执行脚本使得往某一个小站点随便发点什么请求然后随着用户访问的增多感染用户增多被攻击的站点自然就会迅速瘫痪了。这种 DDoS 简直就是无本万利不用惊讶现在大站有 XSS 漏洞的不要太多。来自 P2P 网络攻击大家都知道互联网上的 P2P 用户和流量都是一个极为庞大的数字。如果他们都去一个指定的地方下载数据成千上万的真实 IP 地址连接过来没有哪个设备能够支撑住。那 BT 下载来说伪造一些热门视频的种子发布到搜索引擎就足以骗到许多用户和流量了但是这只是基础攻击。高级的 P2P 攻击是直接欺骗资源管理服务器。如迅雷客户端会把自己发现的资源上传到资源管理服务器然后推送给其它需要下载相同资源的用户这样一个链接就发布出去。通过协议逆向攻击者伪造出大批量的热门资源信息通过资源管理中心分发出去瞬间就可以传遍整个 P2P 网络。更为恐怖的是这种攻击是无法停止的即使是攻击者自身也无法停止攻击一直持续到 P2P 官方发现问题更新服务器且下载用户重启下载软件为止。最后总结下DDoS 不可能防得住就好比你的店只能容纳 50 人黑社会有 100 人你就换一家大店能容纳 500 人然后黑社会又找来了 1000 人这种堆人头的做法就是 DDoS 本质上的攻防之道「道高一尺魔高一丈魔高一尺道高一丈」讲真必要的时候就答应勒索你的人的条件吧实在不行就报警吧。流量劫持流量劫持应该算是黑产行业的一大经济支柱了吧简直是让人恶心到吐不吐槽了还是继续谈干货吧流量劫持基本分两种DNS 劫持 和 HTTP 劫持目的都是一样的就是当用户访问网站的时候给你展示的并不是或者不完全是 网站 提供的 “内容”。DNS 劫持DNS 劫持也叫做域名劫持可以这么理解「你打了一辆车想去商场吃饭结果你打的车是小作坊派来的直接给你拉到小作坊去了」DNS 的作用是把网络地址域名对应到真实的计算机能够识别的 IP 地址以便计算机能够进一步通信传递网址和内容等。如果当用户通过某一个域名访问一个站点的时候被篡改的 DNS 服务器返回的是一个恶意的钓鱼站点的 IP用户就被劫持到了恶意钓鱼站点然后继而会被钓鱼输入各种账号密码信息泄漏隐私。这类劫持要不就是网络运营商搞的鬼一般小的网络运营商与黑产勾结会劫持 DNS要不就是电脑中毒被恶意篡改了路由器的 DNS 配置基本上做为开发者或站长却是很难察觉的除非有用户反馈现在升级版的 DNS 劫持还可以对特定用户、特定区域等使用了用户画像进行筛选用户劫持的办法另外这类广告显示更加随机更小一般站长除非用户投诉否则很难觉察到就算觉察到了取证举报更难。无论如何如果接到有 DNS 劫持的反馈一定要做好以下几件事取证很重要时间、地点、IP、拨号账户、截屏、URL 地址等一定要有。可以跟劫持区域的电信运营商进行投诉反馈。如果投诉反馈无效直接去工信部投诉一般来说会加白你的域名。HTTP 劫持HTTP 劫持您可以这么理解「你打了一辆车想去商场吃饭结果司机跟你一路给你递小作坊的广告」HTTP 劫持主要是当用户访问某个站点的时候会经过运营商网络而不法运营商和黑产勾结能够截获 HTTP 请求返回内容并且能够篡改内容然后再返回给用户从而实现劫持页面轻则插入小广告重则直接篡改成钓鱼网站页面骗用户隐私。能够实施流量劫持的根本原因是 HTTP 协议没有办法对通信对方的身份进行校验以及对数据完整性进行校验。如果能解决这个问题则流量劫持将无法轻易发生。所以防止 HTTP 劫持的方法只有将内容加密让劫持者无法破解篡改这样就可以防止 HTTP 劫持了。HTTPS 协议就是一种基于 SSL 协议的安全加密网络应用层协议可以很好的防止 HTTP 劫持。这里有篇 文章 讲的不错。HTTPS 在这就不深讲了后面有机会我会单独好好讲讲 HTTPS。如果不想站点被 HTTP 劫持赶紧将你的站点全站改造成 HTTPS 吧。服务器漏洞服务器除了以上提到的那些大名鼎鼎的漏洞和臭名昭著的攻击以外其实还有很多其他的漏洞往往也很容易被忽视在这个小节也稍微介绍几种。越权操作漏洞如果你的系统是有登录控制的那就要格外小心了因为很有可能你的系统越权操作漏洞越权操作漏洞可以简单的总结为 「A 用户能看到或者操作 B 用户的隐私内容」如果你的系统中还有权限控制就更加需要小心了。所以每一个请求都需要做 userid 的判断以下是一段有漏洞的后端示意代码1 2 3 4 5 6 7// ctx 为请求的 context 上下文 let msgId ctx.params.msgId;mysql.query(‘SELECT * FROM msg_table WHERE msg_id ?’,[msgId]);以上代码是任何人都可以查询到任何用户的消息只要有 msg_id 就可以这就是比较典型的越权漏洞需要如下这么改进一下1 2 3 4 5 6 7 8// ctx 为请求的 context 上下文 let msgId ctx.params.msgId; let userId ctx.session.userId; // 从会话中取出当前登陆的 userIdmysql.query(‘SELECT * FROM msg_table WHERE msg_id ? AND user_id ?’,[msgId, userId]);嗯大概就是这个意思如果有更严格的权限控制那在每个请求中凡是涉及到数据库的操作都需要先进行严格的验证并且在设计数据库表的时候需要考虑进 userId 的账号关联以及权限关联。目录遍历漏洞目录遍历漏洞指通过在 URL 或参数中构造 …/./ 和类似的跨父目录字符串的 ASCII 编码、unicode 编码等完成目录跳转读取操作系统各个目录下的敏感文件也可以称作「任意文件读取漏洞」。目录遍历漏洞原理程序没有充分过滤用户输入的 …/ 之类的目录跳转符导致用户可以通过提交目录跳转来遍历服务器上的任意文件。使用多个… 符号不断向上跳转最终停留在根 /通过绝对路径去读取任意文件。目录遍历漏洞几个示例和测试一般构造 URL 然后使用浏览器直接访问或者使用 Web 漏洞扫描工具检测当然也可以自写程序测试。1 2 3 4 5 6 7 8http://somehost.com/../../../../../../../../../etc/passwd http://somehost.com/some/path?file../../Windows/system.ini借助 %00 空字符截断是一个比较经典的攻击手法http://somehost.com/some/path?file…/…/Windows/system.ini%00.js使用了 IIS 的脚本目录来移动目录并执行指令http://somehost.com/scripts/…%5c…/Windows/System32/cmd.exe?/cdirc:防御方法就是需要对 URL 或者参数进行 …/./ 等字符的转义过滤。物理路径泄漏物理路径泄露属于低风险等级缺陷它的危害一般被描述为「攻击者可以利用此漏洞得到信息来对系统进一步地攻击」通常都是系统报错 500 的错误信息直接返回到页面可见导致的漏洞。得到物理路径有些时候它能给攻击者带来一些有用的信息比如说可以大致了解系统的文件目录结构可以看出系统所使用的第三方软件也说不定会得到一个合法的用户名因为很多人把自己的用户名作为网站的目录名。防止这种泄漏的方法就是做好后端程序的出错处理定制特殊的 500 报错页面。源码暴露漏洞和物理路径泄露类似就是攻击者可以通过请求直接获取到你站点的后端源代码然后就可以对系统进一步研究攻击。那么导致源代码暴露的原因是什么呢基本上就是发生在服务器配置上了服务器可以设置哪些路径的文件才可以被直接访问的这里给一个 koa 服务器的例子正常的 koa 服务器可以通过 koa-static 中间件去指定静态资源的目录好让静态资源可以通过路径的路由访问。比如你的系统源代码目录是这样的1 2 3 4 5|- project |- src |- static |- ... |- server.js你想要将 static 的文件夹配成静态资源目录你应该会在 server.js 做如下配置1 2 3 4 5const Koa require(koa); const serve require(koa-static); const app new Koa();app.use(serve(__dirname ‘/project/static’));但是如果配错了静态资源的目录可能就出大事了比如1 2// ... app.use(serve(__dirname /project));这样所有的源代码都可以通过路由访问到了所有的服务器都提供了静态资源机制所以在通过服务器配置静态资源目录和路径的时候一定要注意检验不然很可能产生漏洞。最后希望 Web 开发者们能够管理好自己的代码隐私注意代码安全问题比如不要将产品的含有敏感信息的代码放到第三方外部站点或者暴露给外部用户尤其是前端代码私钥类似的保密性的东西不要直接输出在代码里或者页面中。也许还有很多值得注意的点但是归根结底还是绷住安全那根弦对待每一行代码都要多多推敲。学习资源如果你是也准备转行学习网络安全黑客或者正在学习这里开源一份360智榜样学习中心独家出品《网络攻防知识库》,希望能够帮助到你知识库由360智榜样学习中心独家打造出品旨在帮助网络安全从业者或兴趣爱好者零基础快速入门提升实战能力熟练掌握基础攻防到深度对抗。1、知识库价值深度 本知识库超越常规工具手册深入剖析攻击技术的底层原理与高级防御策略并对业内挑战巨大的APT攻击链分析、隐蔽信道建立等提供了独到的技术视角和实战验证过的对抗方案。广度 面向企业安全建设的核心场景渗透测试、红蓝对抗、威胁狩猎、应急响应、安全运营本知识库覆盖了从攻击发起、路径突破、权限维持、横向移动到防御检测、响应处置、溯源反制的全生命周期关键节点是应对复杂攻防挑战的实用指南。实战性 知识库内容源于真实攻防对抗和大型演练实践通过详尽的攻击复现案例、防御配置实例、自动化脚本代码来传递核心思路与落地方法。2、 部分核心内容展示360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式既夯实基础技能更深入高阶对抗技术。360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式既夯实基础技能更深入高阶对抗技术。内容组织紧密结合攻防场景辅以大量真实环境复现案例、自动化工具脚本及配置解析。通过策略讲解、原理剖析、实战演示相结合是你学习过程中好帮手。1、网络安全意识2、Linux操作系统3、WEB架构基础与HTTP协议4、Web渗透测试5、渗透测试案例分享6、渗透测试实战技巧7、攻防对战实战8、CTF之MISC实战讲解3、适合学习的人群‌一、基础适配人群‌‌零基础转型者‌适合计算机零基础但愿意系统学习的人群资料覆盖从网络协议、操作系统到渗透测试的完整知识链‌‌开发/运维人员‌具备编程或运维基础者可通过资料快速掌握安全防护与漏洞修复技能实现职业方向拓展‌或者转行就业‌应届毕业生‌计算机相关专业学生可通过资料构建完整的网络安全知识体系缩短企业用人适应期‌‌二、能力提升适配‌1、‌技术爱好者‌适合对攻防技术有强烈兴趣希望掌握漏洞挖掘、渗透测试等实战技能的学习者‌2、安全从业者‌帮助初级安全工程师系统化提升Web安全、逆向工程等专项能力‌3、‌合规需求者‌包含等保规范、安全策略制定等内容适合需要应对合规审计的企业人员‌因篇幅有限仅展示部分资料完整版的网络安全学习资料已经上传CSDN朋友们如果需要可以在下方CSDN官方认证二维码免费领取【保证100%免费】
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

织梦网络公司网站源码wordpress鼠标经过图片

推想医疗科研支持:帮助医生观察肿瘤随时间发展的形态变化 在临床科研中,医生常常需要回溯患者的多年影像资料,追踪肿瘤的生长轨迹——是缓慢进展?突然增大?还是对治疗产生了响应?这些关键判断往往依赖于对病…

张小明 2026/1/14 23:07:59 网站建设

流媒体网站建设方案毕设做桌面软件还是网站

Stream-rec终极指南:如何实现全自动直播录制与弹幕捕获 【免费下载链接】stream-rec Automatic streaming record tool powered by FFmpeg. 虎牙/抖音/斗鱼/Twitch/PandaTV直播,弹幕自动录制 项目地址: https://gitcode.com/gh_mirrors/st/stream-rec …

张小明 2026/1/15 1:41:06 网站建设

网站 制作 中心做网站的ui

第一章:ETCD集群性能骤降?揭秘MCP环境中ETCD响应延迟的5个隐藏元凶在MCP(Multi-Cluster Platform)架构中,ETCD作为核心的分布式键值存储,承担着服务发现与配置管理的关键职责。当集群规模扩大或负载波动时&…

张小明 2026/1/15 1:41:04 网站建设

网站推广都做什么内容专业建设网站的公司

SUSE Linux 网络浏览、邮件收发与即时通讯指南 1. 网络浏览器介绍 在 SUSE Linux 系统中,有两款常用的网络浏览器:Epiphany 和 Firefox。 1.1 Epiphany 浏览器 Epiphany 是 GNOME 桌面环境中,点击顶部面板上的网络浏览器图标即可启动的浏览器。你可以将鼠标悬停在每个图…

张小明 2026/1/15 1:41:02 网站建设

php网站建设设计制作方案网站建设费会计科目

YOLO目标检测推理延迟优化五大秘籍 在智能制造车间的高速生产线上,一排摄像头正以每秒30帧的速度扫描着飞速流转的产品。系统需要在33毫秒内完成图像采集、缺陷识别和剔除指令下发——任何一环超时,都将导致不良品流入下一道工序。这样的场景&#xff0c…

张小明 2026/1/15 1:41:00 网站建设

哪个地区的网站建设最好网站更换空间 收录慢

题目先按F12查看源码,找到线索访问应该是反序列化题目找到漏洞点unserialize($_GET["data"])以通过控制data参数,构造恶意的序列化数据,利用__destruct()方法的动态函数调用执行任意代码这里可以构造变量a—>phpinfo()&#xff…

张小明 2026/1/15 1:40:59 网站建设