深圳宝安建网站wordpress 地址 html代码
2026/1/9 14:58:49 网站建设 项目流程
深圳宝安建网站,wordpress 地址 html代码,贵州贵阳建网站的电话,郑州水晶奖杯制作关于Web安全的问题#xff0c;是一个老生常谈的问题#xff0c;作为离用户最近的一层#xff0c;我们大前端应该把手伸的更远一点。 我们最常见的Web安全攻击有以下几种#xff1a; XSS 跨站脚本攻击CSRF 跨站请求伪造URL 跳转漏洞ClickJacking 点击劫持/UI-覆盖攻击SQL …关于Web安全的问题是一个老生常谈的问题作为离用户最近的一层我们大前端应该把手伸的更远一点。我们最常见的Web安全攻击有以下几种XSS跨站脚本攻击CSRF跨站请求伪造URL跳转漏洞ClickJacking点击劫持/UI-覆盖攻击SQL InjectionSQL注入OS Command InjectionOS命令注入一、XSSXSS Cross Site Script中文是跨站脚本攻击其原本缩写是 CSS但为了和层叠样式表(Cascading Style Sheet)有所区分因而在安全领域叫做 XSS。恶意攻击者往Web页面里插入恶意Script代码当用户浏览该页之时嵌入其中Web里面的Script代码会被执行从而达到恶意攻击用户的目的。XSS攻击可以分为3类反射型 - 非持久型Reflected XSS存储型 - 持久型Stored XSS基于DOM或本地的XSSDOM-based or local XSS1. 反射型反射型 XSS 只是简单地把用户输入的数据 “反射” 给浏览器这种攻击方式往往需要攻击者诱使用户点击一个恶意链接或者提交一个表单或者进入一个恶意网站时注入脚本进入被攻击者的网站。假装我是一个恶意链接Click Me~const http require(http); // 启http服务 const server http.createServer(function (req, res) { res.setHeader(Access-Control-Allow-Origin, *); res.writeHead(200, {Content-Type: text/html; charsetUTF-8}); res.write(scriptwhile(true)alert(反射型 XSS 攻击)/script); res.end(); }); server.listen(8000);这样就产生了反射型 XSS 攻击。攻击者可以注入任意的恶意脚本进行攻击可能注入恶作剧脚本或者注入能获取用户隐私数据(如cookie)的脚本这取决于攻击者的目的。2. 存储型存储型 XSS 会把用户输入的数据 “存储” 在服务器端当浏览器请求数据时脚本从服务器上传回并执行。这种 XSS 攻击具有很强的稳定性。比较常见的一个场景是攻击者在社区或论坛上写下一篇包含恶意 JavaScript 代码的文章或评论文章或评论发表后所有访问该文章或评论的用户都会在他们的浏览器中执行这段恶意的 JavaScript 代码。!DOCTYPE html html langen head meta charsetUTF-8 title存储型 XSS/title /head body divTry Meinput typetext idinput/div button idbtnSubmit/button script const input document.getElementById(input); const btn document.getElementById(btn); let val; input.addEventListener(change, e { val e.target.value; }, false); btn.addEventListener(click, e { fetch(http://localhost:8000/save, { method: POST, body: val }); }, false); /script /body /htmlconst http require(http); let userInput ; function handleReequest (req, res) { const method req.method; res.setHeader(Access-Control-Allow-Origin, *); res.setHeader(Access-Control-Allow-Headers, Content-Type) if (method POST req.url /save) { let body ; req.on(data, chunk { body chunk; }); req.on(end, () { if (body) { userInput body; } res.end(); }); } else { res.writeHead(200, { Content-Type: text/html; charsetUTF-8 }); res.write(userInput); res.end(); } } // 启http服务 const server http.createServer((req, res) { handleReequest(req, res) }); server.listen(8000);3. 基于DOM基于DOM或本地的XSS其实是一种特殊类型的反射型XSS它是基于DOM文档对象模型的一种漏洞。可以通过DOM来动态修改页面内容从客户端获取DOM中的数据并在本地执行。基于这个特性就可以利用JS脚本来实现XSS漏洞的利用。body input typetext idinput button idbtnSubmit/button div iddiv/div script const input document.getElementById(input); const btn document.getElementById(btn); const div document.getElementById(div); let val; input.addEventListener(change, (e) { val e.target.value; }, false); btn.addEventListener(click, () { div.innerHTML a href${val}Try Me~/a }, false); /script /body总结:XSS攻击的本质就是利用一切手段在目标用户的浏览器中执行攻击脚本。防范:对于一切用户的输入、输出、客户端的输出内容视为不可信在数据添加到DOM或者执行了DOM API的时候我们需要对内容进行HtmlEncode或JavaScriptEncode以预防XSS攻击。现在主流的浏览器内置了防范 XSS 的措施例如 内容安全策略(CSP)。但对于开发者来说也应该寻找可靠的解决方案来防止 XSS 攻击。二、CSRFCSRF(Cross-site request forgery)跨站请求伪造也被称为“One Click Attack”或者Session Riding通常缩写为CSRF或者XSRF是一种对网站的恶意利用。通常情况下CSRF 攻击是攻击者借助受害者的 Cookie 骗取服务器的信任可以在受害者毫不知情的情况下以受害者名义伪造请求发送给受攻击服务器从而在并未授权的情况下执行在权限保护之下的操作。1. 通过 Cookie 进行 CSRF 攻击假设有一个BBS站点http://www.a.com:当用户登录之后会设置如下 cookieres.setHeader(Set-Cookie, [userwilliam; expiresFri, 23 Mar 2019 00:00:00 GMT;])当登录后的用户发起http://www.a.com/delete?id666666请求时会删除 id 为 666666 的帖子。CSRF攻击者准备的网站Bimg srchttp://www.a.com/delete?id666666当登录用户访问攻击者的网站B时会向www.a.com发起一个删除用户帖子的请求。此时若用户在切换到www.a.com的帖子页面刷新会发现ID 为 666666 的帖子已经被删除。要完成一次CSRF攻击受害者必须依次完成两个步骤登录受信任网站A并在本地生成Cookie。在不登出A的情况下访问危险网站B。2. CSRF攻击的防范1.验证 HTTP Referer 字段 2.添加 token 验证 3.验证码尽管CSRF听起来像跨站脚本(XSS)但它与XSS非常不同XSS利用站点内的信任用户而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击相比CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范所以被认为比XSS更具危险性往往同XSS一同作案!三、URL跳转漏洞借助未验证的URL跳转将应用程序引导到不安全的第三方区域从而导致的安全问题。当用户点击后,经过服务器或者浏览器解析后将会跳到恶意的网站中。http://a.baidu.com/index?actgourlhttp://evil.cn/ http://b.baidu.com/safecheck.html?id1urlhttp://evil.cn/ http://c.baidu.com/f/user/passport?jumpUrlhttp://evil.cn/1. 实现方式META标签内跳转Javascript跳转Header头跳转通过以GET或者POST的方式接收将要跳转的URL然后通过上面的几种方式的其中一种来跳转到目标URL。一方面由于用户的输入会进入Metajavascripthttp头所以都可能发生相应上下文的漏洞如xss等等但是同时即使只是对于URL跳转本身功能方面就存在一个缺陷因为会将用户浏览器从可信的站点导向到不可信的站点同时如果跳转的时候带有敏感数据一样可能将敏感数据泄漏给不可信的第三方。2. 防御方案① referer的限制如果确定传递URL参数进入的来源我们可以通过该方式实现安全限制保证该URL的有效性避免恶意用户自己生成跳转链接② 加入有效性验证Token我们保证所有生成的链接都是来自于我们可信域的通过在生成的链接里加入用户不可控的Token对生成的链接进行校验可以避免用户生成自己的恶意链接从而被利用但是如果功能本身要求比较开放可能导致有一定的限制。四、ClickJackingClickJacking点击劫持也叫UI覆盖攻击攻击者会利用一个或多个透明或不透明的层来诱骗用户支持点击按钮的操作而实际的点击确实用户看不到的一个按钮从而达到在用户不知情的情况下实施攻击。1. iframe覆盖这种攻击方式的关键在于可以实现页中页的iframe标签并且可以使用css样式表将他不可见。防止点击劫持有两种主要方法X-FRAME-OPTIONSX-FRAME-OPTIONS是微软提出的一个http响应首部指示浏览器不允许从其他域进行取景专门用来防御利用iframe嵌套的点击劫持攻击。并且在IE8、Firefox3.6、Chrome4以上的版本均能很好的支持。DENY: 拒绝任何域加载SAMEORIGIN: 允许同源域下加载ALLOW-FROM: 可以定义允许frame加载的页面地址顶层判断在UI中采用防御性代码以确保当前帧是最顶层的窗口,如:top ! self || top.location ! self.location || top.location ! location2. 图片覆盖图片覆盖攻击Cross Site Image Overlaying攻击者使用一张或多张图片利用图片的style或者能够控制的CSS将图片覆盖在网页上形成点击劫持。当然图片本身所带的信息可能就带有欺骗的含义这样不需要用户点击也能达到欺骗的目的。a hrefhttp://www.a.com/delete?id666666 img src~~~ style~~~ / /a解决方案: 在防御图片覆盖攻击时需要检查用户提交的HTML代码中img标签的style属性是否可能导致浮出。五、SQL InjectionSQL 注入漏洞SQL Injection是 Web 开发中最常见的一种安全漏洞。可以用它来从数据库获取敏感信息或者利用数据库的特性执行添加用户导出文件等一系列恶意操作甚至有可能获取数据库乃至系统用户最高权限。1. 原理SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序而这些输入大都是SQL语法里的一些组合通过执行SQL语句进而执行攻击者所要的操作其主要原因是程序没有细致地过滤用户输入的数据致使非法数据侵入系统。根据相关技术原理SQL注入可以分为平台层注入和代码层注入。前者由不安全的数据库配置或数据库平台的漏洞所致后者主要是由于程序员对输入未进行细致地过滤从而执行了非法的数据查询。基于此SQL注入的产生原因通常表现在以下几方面① 不当的类型处理② 不安全的数据库配置③ 不合理的查询集处理④ 不当的错误处理⑤ 转义字符处理不合适⑥ 多个提交处理不当。2. 攻击当应用程序使用输入内容来构造动态sql语句以访问数据库时会发生sql注入攻击。如果代码使用存储过程而这些存储过程作为包含未筛选的用户输入的字符串来传递也会发生sql注入。sql注入可能导致攻击者使用应用程序登陆在数据库中执行命令。相关的SQL注入可以通过测试工具pangolin进行。3. 防护① 永远不要信任用户的输入。对用户的输入进行校验可以通过正则表达式或限制长度对单引号和双-进行转换等。② 永远不要使用动态拼装sql可以使用参数化的sql或者直接使用存询存取。③ 永远不要使用管理员权限的数据库连接为每个应用使用单独的权限有限的数据库连接。④ 不要把机密信息直接存放加密或者hash掉密码和敏感的信息。⑤ 应用的异常信息应该给出尽可能少的提示最好使用自定义的错误信息对原始错误信息进行包装。⑥ sql注入的检测方法一般采取辅助软件或网站平台来检测软件一般采用sql注入检测工具jsky网站平台就有亿思网站安全平台检测工具MDCSOFT SCAN等。采用MDCSOFT-IPS可以有效的防御SQL注入XSS攻击等。六、OS命令注入OS 注入攻击是指程序提供了直接执行 Shell 命令的函数的场景当攻击者不合理使用且开发者对用户参数未考虑安全因素的话就会执行恶意的命令调用被攻击者利用。OS 命令注入其实原理和 SQL 注入是类似的只是场景不一样而已。 在 Node.js 中可以使用exec()执行命令通过传入一段字符串命令并把一个错误或命令处理结果回传至回调函数中。1. execlet userInput user input; child_process.exec(ls -l userInput, (err, data) { console.log(data); });攻击者可以使用一个分号;来结束命令并开始一个新的调用他们可以使用反引号或$()来运行子命令。还有很多潜在的滥用。在child_process.exec引擎下将调用执行/bin/sh。而不是目标程序。已发送的命令只是被传递给一个新的/bin/ sh’进程来执行shell。 child_process.exec的名字有一定误导性 - 这是一个bash的解释器而不是启动一个程序。这意味着如果直接执行用户输入的参数所有的shell字符可能会产生毁灭性的后果。2. execFile/spawn在 Node.js 中除了 exec() 之外还有 execFile() 和 spawn() 两个方法也可以用来执行系统命令。它们和 exec() 的区别是后者是直接将一个命令字符串传给 /bin/sh 执行而前者是提供了一个数组作为参数容器最后参数会被直接传到 C 的命令执行方法 execve() 中不容易执行额外的参数。!--child_process.execFile -- let path user input; child_process.execFile(/bin/ls, [-l, path], (err, result) { console.log(result) });!--child_process.spawn-- let path user input; let ls child_process.spawn(/bin/ls, [-l, path]) ls.stdout.on(data, data { console.log(data.toString()); });注意使用spawn或execFile并不总是安全的。例如运行/bin/find并传入用户输入参数仍有可能导致系统被攻陷。 find命令有一些选项允许读/写任意文件。避免使用child_process.exec当需要包含用户输入的参数时更是如此请牢记。尽量避免让用户传入参数使用选择项比让用户直接输入字符串要好得多。必须允许用户输入参数的情况下请广泛参考该命令的参数确定哪些选项是安全的并建立一个白名单。学习资源如果你是也准备转行学习网络安全黑客或者正在学习这里开源一份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%免费】

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询