IT技术博客大学习 共学习 共进步

标签:Web Security

共 18 篇相关文章

IT 累计浏览 2,181

活动 Web 页面人机识别验证的探索与实践

这篇讲的是电商活动页面如何“静悄悄”地对抗机器人刷单。作者从一个现实痛点出发:营销活动页因Web环境透明,易被脚本直接调用API“薅羊毛”,损害用户体验与平台利益。 文章核心是介绍一套多层次的人机识别技术方案。它不依赖显眼的验证码,而是通过前端收集用户进入页面、停留、滚动、点击等行为数据,结合设备环境信息,形成“行为指纹”提交给风控服务校验。为确保这套机制不被破解,方案在通信安全和代码保护上做了深入设计:利用有时效的动态Token绑定会话,对传输数据进行对称加密,并通过代码混淆与反调试处理增加前端逻辑的反编译成本。 作者详细拆解了从基础风控拦截、Token下发、数据加密上报到最终业务处理的完整流程。这套组合拳的目标是在用户无感知的前提下,让安全验证像背景一样自然运行,既防住了作弊,又守住了活动体验。

IT 累计浏览 3,420

浅谈Web安全验证码

这篇文章从大家熟悉的“春运验证码”切入,谈了谈Web安全中这个既熟悉又令人头疼的验证机制。作者首先解释了验证码(CAPTCHA)的初衷:它本质上是一道区分人类与计算机程序的图灵测试,用于抵御暴力破解、垃圾广告等滥用行为。 接着,文章深入剖析了验证码的工作原理。一个典型的流程是,服务器为每个会话生成唯一验证码并关联,用户识别后提交,服务器再进行校验。然而,实现上常见的漏洞不少:比如验证码在错误后未失效,导致攻击者可能固定使用一个码反复尝试;或是不慎将验证码字符串明文写在响应包里,使其形同虚设。 面对验证码,攻防双方的博弈从未停止。文章总结了当前主要的对抗方式:攻击者会通过更换IP、延迟请求来“避免触发”验证码;或者利用上述漏洞实现“验证码固定”;更直接的是通过“机器自动识别”(涉及去噪、二值化、切片、模板匹配等步骤)或借助“人工分布式打码”平台来破解。这反过来也推动了验证码技术的演进,未来验证码会更强调增强干扰与字符变形,并可能拓展字符空间至中文,以应对不断升级的识别技术。

IT 累计浏览 2,483

解决 SQL 注入的另类方法

这篇讲的是如何从根本上破解 SQL 注入,而不只是修补漏洞。作者从一个经典场景出发:攻击者通过精心构造的输入,篡改了原本合法的 SQL 查询语义。文章指出,这种问题的根源在于我们过度依赖与 SQL 语法等价的、但更容易被误用的“字符串拼接”表示法。 核心思路是跳出“过滤或转义”的传统框架,转而利用 SQL 本身是公理化语言的特性。文章提出了三种另类的防御策略:第一,将 SQL 模板转换为语法严格、结构不同的等价表示,比如前缀表示法或欧拉表示法,让攻击者的注入在新语法下直接失效;第二,为 SQL 关键字替换一套自定义的、任意的 token 集合,构建一个“私有语言”,使注入的 `or`、`=` 等字符成为无效代码;第三,验证 SQL 语句的结构不变量,例如填充前后 token 的数量必须恒定,任何偏离都意味着注入发生。 作者通过具体的代码示例,生动地展示了攻击注入在这些策略下是如何因语法错误或结构破坏而“折戟”的。这种从语言理论和形式化角度解决问题的方案,为防御注入攻击提供了一条极具启发性的新路径。

IT 累计浏览 3,122

NodeJs下的Web安全

这篇文章聚焦于Node.js应用面临的Web安全威胁及防御之道。它系统地拆解了从基础到进阶的多种攻击模式,每种都清晰地阐述了攻击原理与具体防范措施。 比如,针对SQL注入,文章展示了恶意参数如何拼接出`drop table`的毁灭性语句,并强调对用户输入进行过滤是关键。对于XSS脚本攻击,作者提醒要保持对用户数据的怀疑,并推荐了具体的过滤模块。文章还深入讲解了CSRF请求伪造、HTTP管道洪水漏洞,以及包括Slowlori慢速攻击、超大Buffer耗尽内存在内的多种应用层DoS攻击手法。 除了这些经典问题,内容也延伸至Node.js开发中特有的风险点,如因直接拼接文件路径导致的目录遍历漏洞,以及MD5等传统加密方式因彩虹表而变得不安全的现状。文末的总结建议,将Node.js应用部署在Nginx之后、对输入进行严格过滤,是极具操作性的生产环境防护指南。

IT 累计浏览 3,400

nginx访问控制Access Control的问题

这篇讲的是nginx中一个容易踩的坑:使用`allow`和`deny`配置IP访问控制时,规则可能出乎意料地“不生效”。 作者通过一个实际配置进行测试:在server块禁用了IP `211.81.175.6`,在`location /nginxacc`块禁用了IP `211.81.175.8`。预期结果是前者全站不可访问,后者仅目录受限。但实际测试发现,IP `211.81.175.6`竟然能访问`/nginxacc`,而IP `211.81.175.8`却可以访问根目录。 问题的根因在于nginx的访问控制规则继承机制。如果子级(如location块)定义了任何ACL规则,它就**不会**继承父级(如server块)的规则,而是完全使用自己定义的规则列表。这意味着,虽然IP `211.81.175.6`在server层被禁,但在`/nginxacc`这个location里没有重新声明禁止,因此该location的访问是被放行的。 文章引用了nginx源码作为依据。这个发现提醒我们,在设计多层级访问控制时,必须清楚理解规则的继承与覆盖逻辑,不能想当然地认为规则会自动累加。否则就可能出现安全策略漏洞,本该封锁的IP反而获得了访问权限。

IT 累计浏览 2,640

如何安全的Include文件

这篇讲的是PHP开发中一个容易被忽略的陷阱:include外部文件时可能引发的变量污染问题。作者从一个看似简单的调试开关案例出发,揭示了配置文件中的临时变量如何悄悄覆盖主脚本的变量,导致程序行为异常——就像二战时阿登高地被绕过一样,安全之处往往藏着隐患。 文章指出,问题的根因在于include操作时文件内的变量直接进入了当前作用域。作者提供的解决方案很简洁:将include语句包裹在匿名函数中执行,利用函数创建独立的作用域。这种用call_user_func执行闭包来隔离变量作用域的做法,在JavaScript中很常见,但在PHP代码里却很少有人刻意运用。 对于日常编写PHP代码的开发者来说,这个技巧能有效避免因include文件带来的隐蔽bug,尤其在多文件协作或修改第三方配置文件时特别实用。作者通过这个具体场景提醒我们,那些“简单”的基础操作,恰恰需要多一分警惕。

IT 累计浏览 3,321

IIS写权限利用续以及写权限漏洞来由解释

这篇文章聚焦于一个具体的技术疑问:在 IIS 的 .NET 环境下,为什么利用 WebDAV 写权限时,经典的 MOVE 命令会失败并返回 207 状态码。 作者从自己三年半前留下的实践困惑出发,不仅解答了这个谜题,还深入剖析了所谓“IIS写权限漏洞”的根源。他指出,这并非复杂的高深漏洞,而是源于两个典型的管理错误配置:启用了通常不需要的 WebDAV 服务器扩展,以及在网站权限中开启了“写入”权限。这本质上是“人祸”。 对于大家熟知的利用流程——先 PUT 一个 txt 文件,再 MOVE 成 asp 脚本——作者给出了在 .NET 环境下成功的关键技巧。他利用了 IIS6.0 的文件解析漏洞,在目标文件名中加入分号,例如将 `oldjun.txt` MOVE 到 `shell.asp;1.jpg`,从而绕过了环境限制,成功获取 webshell。 文章最后推荐了 DAV Explorer 工具,并总结道,只要管理员避免上述错误配置,就能从根源上杜绝此类问题。

IT 累计浏览 6,922

浅谈php web安全

这篇笔记从一位PHP开发者的实践出发,系统总结了Web安全开发中那些容易被忽略却至关重要的要点。作者强调,安全意识是开发者必备的素养,不能因项目内部或认为用户“善良”而放松警惕。 文章从基础的PHP安全配置讲起,比如关闭错误提示以避免信息泄露、禁用`register_globals`等危险功能。核心部分则深入数据验证,指出必须对用户输入进行严格校验,包括类型、长度和危险字符,并特别提醒了表单元素后端验证、字段名避免暴露等常见疏漏。 在防注入环节,作者详细演示了如何判断SQL注入漏洞,并列举了多种常见攻击手法,如万能密码、通过`union`语句猜解表结构等。针对防御,提供了从使用`intval()`处理数字参数,到结合`addslashes`等函数进行过滤的代码示例。此外,文章还简要涵盖了XSS、CSRF以及防盗链等其他常见Web攻击的防护思路。 整篇文章并非高深的理论,而是一份扎实的“避坑指南”,旨在帮助PHP开发者在编码阶段就植入安全基因,从根源上减少漏洞。

IT 累计浏览 5,882

anti spam杂谈

这篇讲的是邮件系统的垃圾过滤与论坛防灌水技术的内在联系。作者从一个比较有趣的角度切入,把这两个看似不同场景下的反垃圾实践放在一起对比讨论。 文章重点从技术层面展开,没有延伸到运营或法律等其他维度。你可以看到,邮件反垃圾主要依赖发件人信誉、内容特征(比如关键词、链接分析)和机器学习模型的动态学习,目标是在海量邮件中高精度识别并过滤垃圾邮件。而论坛防灌水更侧重于实时性,常用验证码、发帖频率限制、行为模式分析(比如短时间内重复发帖)等手段,更强调拦截的即时效果。 尽管目标一致(都是对抗垃圾信息),但两者在技术路径上各有侧重:邮件系统更注重长期、批量的模型准确率,而论坛则需要平衡用户体验与即时防护。这种对比能帮助读者理解,反垃圾策略如何根据不同的应用环境和攻击模式进行适配。

IT 累计浏览 4,602

Cookie安全漫谈

这篇讲的是浏览器中至关重要却常被忽视的Cookie安全。作者从一次真实的Cookie泄露导致的会话劫持事件出发,系统梳理了从基础属性到高级配置的完整防御链。文章核心对比了`HttpOnly`、`Secure`与`SameSite`这三个关键属性的作用域与效果差异:`HttpOnly`阻止JavaScript直接读取,有效防御XSS攻击窃取令牌;`Secure`确保Cookie仅在HTTPS下传输,防止明文泄露;而`SameSite`则能直接阻断大部分跨站请求伪造(CSRF)攻击,并给出了`Strict`、`Lax`与`None`三种模式在兼容性与安全性上的取舍建议。 除了这些原生属性,文章还深入探讨了服务端如何配合设置合理的`Domain`与`Path`限制,以遵循最小权限原则。最后,作者将视野提升至更完整的防护体系,指出即便配置了这些属性,也需结合内容安全策略(CSP)与CSRF Token等纵深防御手段,才能构建更稳固的会话安全基石。

IT 累计浏览 3,120

OAuth的改变

这篇讲的是OAuth协议本身的“进化史”。作者从之前那篇概览文章出发,这次一头扎进了版本迭代的细节里,为我们梳理了OAuth从1.0到1.0a,再到2.0的完整演变脉络。 文章的核心在于对比。它没有停留在表面特性,而是深入剖析了每次改变背后的驱动因素:比如1.0a对1.0一个关键安全漏洞的紧急修复;又比如2.0为何要进行一场近乎推倒重来的设计革新,以适应现代Web和移动端的复杂授权场景。作者清晰地解释了每个版本在签名方式、流程和信任模型上的关键差异,并指出了它们各自适用的技术背景。 最让人有收获的是,作者并非简单罗列变更日志,而是像一位向导,带我们看清了协议从“能用但粗糙”到“安全且灵活”的演进逻辑。这有助于开发者理解当下OAuth 2.0规范中许多设计背后的“为什么”,而不仅仅是“怎么用”。

IT 累计浏览 3,061

Google:《关于浏览器和网络的20项须知》

这篇来自Google工程团队的文章,把浏览器和网络交互的底层逻辑梳理成了20个关键认知点。它不只罗列概念,更注重揭示设计背后的权衡逻辑——比如HTTP/2的多路复用为何没能完全解决队头阻塞,又比如TLS握手与TCP握手的先后顺序如何真实影响页面加载时间。 作者从实际的性能优化与问题排查经验出发,把复杂的协议交互拆解成可操作的认知点。内容覆盖了从DNS解析、TCP连接、HTTP协商到页面渲染的全链路,特别强调了浏览器实现与标准规范之间的那些“隐性知识”。比如文章会指出,你以为的缓存策略可能根本没生效,而某些安全头的误用反而会引发新的漏洞。 这更像一份工程师的避坑清单与思维检查表。它用简洁的语言点破了许多开发者容易忽略的细节,对前端开发者、后端工程师乃至网络优化从业者都有直接参考意义。

IT 累计浏览 2,280

防止伪造跨站请求的小招式

这篇讲的是网络安全中一个常见但容易被忽视的漏洞——CSRF(伪造跨站请求),以及如何用一些实用的小招式来防御它。 作者从攻击者如何利用用户已登录的浏览器状态发起恶意请求这一背景出发,清晰地拆解了CSRF的攻击原理。文章的核心在于提供了一系列行之有效的防御方案,重点介绍了业界最常用的双重提交Cookie和基于令牌(Token)的同步模式(Synchronizer Token Pattern)。具体来说,它详细说明了如何生成、验证和传输一个不可预测的令牌,从而确保请求的合法性。 此外,文章还介绍了利用浏览器安全策略进行防御的现代方法,如为Cookie设置SameSite属性(Lax或Strict),这能从源头阻止跨站请求携带身份凭证。文中可能还对比了不同防御手段的适用场景与兼容性考量。整篇文章没有空谈理论,而是直接切入“如何做”,给出的都是可以直接落地的、轻量级的实践建议。对于希望快速为Web应用增加一层安全保障的开发者来说,这些不复杂却效果显著的招式很有参考价值。

IT 累计浏览 4,240

一段Javascript的代码

作者分享了一段高度混淆的Javascript代码,挑战读者破解其功能。这段代码表面上杂乱无章,但通过分析可以发现,

IT 累计浏览 3,224

从团购网的漏洞看网站安全性问题

这篇讲的是一个团购网站因为忽视基础安全配置而遭遇攻击的真实案例。作者从后台管理系统存在的弱口令和未授权访问漏洞切入,详细还原了攻击者如何利用这些入口进一步发现代码泄露的敏感信息,最终导致用户数据面临风险的过程。文章不仅剖析了技术层面的疏忽——如权限验证缺失、调试接口未关闭,更点出了安全意识薄弱、运维流程不规范这些深层根源。它提醒我们,安全性并非高深技术的堆砌,往往始于对每一个登录框、每一个默认设置的警惕。

IT 累计浏览 2,020

跨域资源共享的10种方式

跨域问题是前端开发中一道绕不过去的墙,同源策略严格限制了网页间的资源交互。这篇内容没有停留在理论层面,而是系统梳理了绕过限制的10种实用手段。 作者从最经典的JSONP讲起,解释了它如何利用script标签不受同源策略约束的特性;再到现代开发中更推荐的CORS,剖析了其背后的头部协商机制。文章不仅对比了postMessage、document.domain、URL片段等不同方案的核心思路,还点明了各自的适用场景——比如WebSocket天然支持跨域,适合实时通信;而服务器代理则适用于需要完全隐藏接口地址的场景。 值得注意的是,文中对每种方式都指出了明确的优劣。像JSONP仅支持GET请求且存在安全风险,CORS则需要服务端配合配置,对老旧浏览器的支持也不尽相同。这种直白的对比,能帮助读者快速判断哪种方案最适合自己的项目环境和技术栈。 整篇文章逻辑清晰,从问题本质切入,落脚到具体方案的取舍,为处理跨域问题提供了一份相当务实的技术参考。

IT 累计浏览 6,401

跨域请求的iframe解决方案(1)

跨域问题在Web开发中几乎绕不开,这篇文章没有做全面的方案综述,而是聚焦于一个经典而巧妙的解决途径:利用iframe。它首先点明了问题的核心是浏览器的同源策略,而iframe本身虽然也受同源策略限制,却可以作为不同源页面之间的“信使”桥梁。 文章的核心方案围绕如何安全、有效地通过iframe进行跨域通信展开。其中重点剖析了现代前端开发中最推荐的方式——使用`postMessage` API。作者会详细拆解`postMessage`的工作机制,包括消息的发送、接收监听以及至关重要的`origin`安全校验,防止恶意网站接收或伪造消息。文中还可能涉及一些利用iframe的早期或辅助性技巧,比如通过iframe的`location.hash`或`document.domain`(在特定配置下)来实现简单数据传递,并比较它们的优劣与适用场景。 整体来看,这篇文章相当于一个技术方案的深度拆解。它不只是告诉你可以用iframe,更关键的是讲清楚了“如何正确且安全地使用iframe”。对于需要处理前后端分离、微前端架构或嵌入第三方内容的开发者来说,理解`postMessage`的可靠机制与安全细节,是构建健壮跨域解决方案的重要一环。作为系列的开篇,它为后续更复杂的场景讨论打下了扎实的基础。

IT 累计浏览 3,862

淘宝网:前端安全须知

这篇来自淘宝网的技术分享,系统梳理了前端安全的核心防线。作者从常见的XSS(跨站脚本攻击)和CSRF(跨站请求伪造)出发,详细阐述了具体的攻击原理与场景。在XSS防护上,文章不仅提到了输入过滤和输出编码等基本手段,更重点介绍了内容安全策略(CSP)的部署实践,以及如何利用这套策略来有效限制脚本来源。 在CSRF防御部分,文章分享了淘宝网如何通过双重提交Cookie、验证Referer和Token等机制构建多层防护。此外,文章还探讨了HTTPS的强制升级、安全的Cookie属性设置以及应对安全漏洞的应急响应流程。这些内容并非泛泛而谈,而是结合了淘宝网自身的业务复杂性和海量用户场景,给出了经过验证的具体配置和代码示例。 对于前端开发者而言,这篇文章的价值在于它将抽象的安全概念,落地为了可执行的最佳实践清单,帮助大家从代码层面构建起更健壮的应用防御体系。