IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

安全

共 391 篇文章

IT 2011-12-18 21:58:08 / 累计浏览 5,123

SSL Proxy

这篇讲的是SSL Proxy的深入解析。作者从之前的浅析出发,在最近的讨论中意识到对SSL Proxy的理解还不够透彻,于是重新梳理了其实现原理和关键细节,力求更细致地呈现这个常见却容易被简化的技术点。 SSL Proxy通常用于处理加密流量,比如在网络安全监控或负载均衡场景中,核心目标是高效解密数据流、分析内容后再加密转发。文章聚焦于其内部实现思路:从SSL/TLS握手的详细步骤,到证书链验证和密钥交换的机制,作者逐步拆解了代理如何透明地介入加密通信。一个巧妙之处在于会话复用策略,通过缓存SSL会话状态来减少重复握手开销,这在高并发环境下能显著降低延迟——文章用实际配置示例说明了这一点,比如调整缓存超时参数对性能的影响。 同时,作者对比

本机暂存
IT 2011-12-11 16:25:12 / 累计浏览 2,683

谁动了我的隐私 -- 隐私风险初探

这篇讲的是日常生活中隐藏的隐私泄露风险。作者从数字时代的普遍焦虑出发,没有停留在泛泛的讨论,而是拆解了几个典型的风险场景:比如各类应用过度索取的权限、看似无害的个性化推荐背后的数据画像,以及智能设备无处不在的数据收集。文章特别指出,许多风险并非源于黑客攻击,而是用户无意识的分享行为和平台默认的数据收集策略共同作用的结果。 核心观点在于,隐私保护不仅是“关掉开关”这么简单,它涉及到对整个数据生态链的认知。作者举例说明,当我们在享受便利服务时,往往已经交出了通讯录、位置乃至行为习惯的打包数据。文章没有给出绝对化的解决方案,而是引导读者去思考:在便利与隐私之间,个人的决策边界应该在哪里?这种清醒的审视,或许是我们在这个时代必备的数字生存技能。

本机暂存
IT 2011-12-11 15:27:20 / 累计浏览 3,980

通过ssldump来分析ssl协议过程

这篇讲的是一个在调试SSL/TLS连接时非常实用的命令行工具——ssldump。作者从一次典型的网络排查场景出发,介绍了如何用它直接、实时地解析网络流量中的SSL/TLS握手过程与加密数据。 文章的核心价值在于,它超越了工具的基本用法,深入到协议细节。你能看到ssldump如何清晰展示客户端与服务器协商时发送的ClientHello、ServerHello消息中的具体字段,比如支持的TLS版本、密码套件、SNI扩展等。这对于理解为何握手失败、证书验证不通过等问题非常直观。作者还演示了如何利用会话密钥来解密后续的通信数据(需要预先提供密钥),从而将看似密文的流量还原成可读的HTTP等应用层内容。 相比Wireshark等图形化工具,ssldump的优势在于轻量、快速,且能直接在服务器端进行分析,尤其适合在无法获取完整流量包、只能通过命令行访问的生产环境或远程主机上进行紧急排查。文章通过具体的命令示例和输出解读,让这个老牌工具重新焕发生机,成为运维和安全工程师工具箱里一个值得掌握的利器。

本机暂存
IT 2011-11-21 00:02:23 / 累计浏览 7,460

Oracle Database Firewall - 数据库防火墙

Oracle Database Firewall 是Oracle公司针对数据库安全推出的一道重要防线。这个产品的诞生源于Oracle在2010年对数据库安全公司Secerno的收购,并在其技术基础上进行了整合与升级。 文章详细梳理了这款防火墙的定位和价值。它的核心目标非常明确:在数据库之前建立一层主动防御机制,专门用于识别和阻断非法的数据库访问、SQL注入攻击以及其他潜在的安全威胁。与传统的网络安全设备不同,它深度理解数据库协议和SQL语言,能够建立精细的、基于语句的合法活动基线。一旦发现偏离基线的可疑或恶意操作,系统便能实时阻止并告警,从而为数据库提供了一道主动的、前置的安全屏障。 对于负责数据库安全架构的工程师或需要应对高合规性要求的DBA来说,了解Oracle Database Firewall的工作原理和部署逻辑,是构建纵深防御体系中关键的一环。

本机暂存
IT 2011-11-16 00:10:45 / 累计浏览 1,824

安全之availibility

这篇文章聚焦于信息安全中最容易被忽视却至关重要的维度——可用性(Availability)。作者从经典的CIA三要素(机密性、完整性、可用性)框架切入,指出许多安全建设往往过度强调“防泄露”和“防篡改”,却忽略了确保系统与数据在需要时能够正常访问这一根本前提。 文章深入阐述了可用性在实际业务中的表现,例如它直接关系到用户体验、业务连续性乃至企业的直接营收。通过剖析一些实际案例(如DDoS攻击导致服务中断、冗余设计不足引发的单点故障),作者揭示了可用性面临的常见威胁。更关键的是,文章探讨了如何在安全策略与系统可用性之间寻求平衡,比如权限管控过于严格可能带来的访问瓶颈,以及安全机制本身可能引入的延迟。 作者最终强调,一个健壮的安全体系必须是“可用的”安全,不能为安全而牺牲业务。真正的安全韧性,在于通过精心设计和冗余,让系统即使在攻击或故障下也能持续提供核心服务。这对于架构师和运维人员规划安全防护时,具有切实的参考价值。

本机暂存
IT 2011-11-14 00:06:27 / 累计浏览 3,122

OAuth的改变

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

本机暂存
IT 2011-11-04 22:28:39 / 累计浏览 3,304

XML实体注入漏洞安全警告

这篇安全警告详细拆解了XML实体注入(XXE)这一常见但危害极大的漏洞。文章从攻击者视角出发,演示了如何利用XML解析器默认开启的外部实体引用功能,通过精心构造的XML文档,实现本地文件读取、内网端口扫描甚至远程代码执行。作者特别指出,这种漏洞在Web应用接口、文档上传解析、老旧系统数据交互中尤为普遍,往往因为开发者对底层解析库的安全配置疏忽而埋下隐患。 文章的核心价值在于将复杂的攻击原理转化为具体的防御清单。它不仅对比了不同编程语言(如Java、PHP、Python)中XML解析器的默认行为与安全配置差异,还提供了切实可行的修复方案:包括在解析前显式禁用外部实体和DTD、实施严格的输入校验、以及使用更安全的数据格式(如JSON)作为替代。通过几个真实案例的复盘,文章强调了“最小权限原则”在XML解析场景下的具体应用,让读者能快速将知识转化为代码层面的加固措施。 这些细致的分析和建议,使得它超越一般漏洞公告,成为一份开发与安全团队可以立即参照的实战手册。

本机暂存
IT 2011-10-25 13:41:20 / 累计浏览 3,922

Erlang如何限制节点对集群的访问之net_kernel:allow

这篇讲的是Erlang集群访问控制中一个不容忽视的安全问题。在默认设置下,Erlang集群采用全授权模式,只要节点通过cookie认证,就能随意访问集群内的所有机器,这给运维带来了不小的风险——比如未经授权的访问可能引发数据泄露或系统不稳定。作者从这个背景出发,介绍了两种限制节点访问的具体方法。 第一种是IP网段限制,通过配置网络层来实现访问控制,具体细节可参考相关技术文章。第二种则是通过Erlang的net_kernel:allow函数进行节点名称限制,这是一种更基于标识的灵活方案。文章对比了这两种方式的关键差异:IP网段限制侧重于网络层面的隔离,适合快速部署和简单的安全防护;而net_kernel:allow允许管理员设置节点白名单,实现更精细的控制,尤其适用于需要动态管理节点身份的复杂场景。 作者还提供了实际参考链接,帮助读者深入了解net_kernel:allow的实现和用法。对于正在设计或维护Erlang分布式系统的开发者而言,理解这两种限制手段的适用范围,能有效平衡安全性与运维便利性,避免集群陷入“全开放”的潜在陷阱。

本机暂存
IT 2011-10-18 23:31:52 / 累计浏览 3,101

linux 下解决php-udp网站攻击。彻底解决办法!

这篇文章直击一个真实痛点:网站服务器遭遇UDP Flood攻击的紧急处理。作者从实战角度出发,没有停留在防火墙规则或应用层防护的常规方案上,而是剖析了一个更深层的问题——服务器可能已被植入udp-dos攻击木马。 文章最彻底的解决之道,是在Linux系统层面直接禁止UDP对外发送数据。这意味着,即使攻击代码已经潜伏在服务器内部,也无法将恶意数据包投递出去,从根源上切断了攻击路径。这种“釜底抽薪”的思路,绕过了复杂的应用排查,提供了立即见效的防御手段。 对于需要加固服务器安全的朋友来说,这个思路非常直接有效。它提醒我们,面对复杂的攻击,有时最简单的系统级策略反而最为可靠。

本机暂存
IT 2011-10-14 13:46:46 / 累计浏览 3,285

深掘XSS漏洞场景之XSS Rootkit

这篇探讨的是XSS漏洞利用中一种隐蔽性更强的持久化控制机制——XSS Rootkit。作者从攻击者视角出发,剖析了如何利用XSS不仅窃取单次会话,更能在目标网站植入持久化的“脚本后门”。 文章深入拆解了攻击者如何将XSS从一次性漏洞利用,升级为一种隐蔽的控制通道。核心实现思路包括:利用持久化存储型XSS(如修改用户资料、评论)注入恶意脚本,该脚本在其他用户浏览器中执行后,会尝试劫持会话、窃取Cookie,并将控制权回传。更巧妙的是,攻击者可能利用它动态加载后续攻击模块、监控用户行为,甚至结合其他漏洞形成攻击链,将XSS漏洞转化为一个“前端Rootkit”,长期驻留并影响网站访问者。 作者不仅揭示了攻击手法,更从防御视角提供了具体洞察。例如,文章会分析这类攻击如何绕过常见的XSS过滤器,并强调了内容安全策略(CSP)等防御措施在阻断此类隐蔽通信中的关键作用。这为安全开发和运维人员敲响了警钟:防御XSS需超越对单一输入点的校验,更要关注如何阻断漏洞被利用后建立的持久化控制通道。

本机暂存
IT 2011-09-19 23:36:35 / 累计浏览 3,803

CentOS5.3下安装pptpd提供VPN服务

这篇讲的是如何在一台CentOS 5.3系统的国外服务器上,利用pptpd软件搭建起一套可用的VPN服务。作者从朋友“物尽其用”的提议出发,描述了此前因重装系统而缺失此项服务、继而重新部署的完整过程。 文章并非单纯罗列安装步骤。作者坦诚遇到了一些问题,并在Google和百度上寻找解决方案时,发现网络上的相关教程大同小异且转载泛滥、缺乏溯源。这种观察让一篇技术实践记录多了一层对技术社区内容生态的思考。在具体实施上,他详细记录了从软件安装、配置文件修改到最终问题解决的每一步,将实战中可能遇到的坑点一一呈现。 最终,这篇文章不仅是一份关于在特定老旧系统上配置经典VPN服务(pptpd)的实用指南,也侧面反映了技术分享中“注明来源”的重要性。对于需要在类似环境下快速搭建点对点隧道协议VPN的管理员来说,这份包含具体细节和真实经验的过程记录,提供了一份可靠的参考。

本机暂存
IT 2011-09-19 23:29:02 / 累计浏览 3,585

SSH免密码认证进阶使用

这篇文章深入探讨了SSH免密码认证的进阶技巧,超越了基本的密钥生成与配置。作者从实际运维中遇到的多服务器、多密钥管理痛点出发,详细演示了如何利用ssh-agent高效管理不同服务器的私钥,并通过Agent Forwarding安全地跳转跳板机,避免将密钥暴露到中间节点。 文中特别对比了不同加密算法(如Ed25519与RSA)在安全性与性能上的差异,建议了具体的选型策略。对于需要频繁切换身份的场景,文章讲解了基于Host指令为不同服务配置独立密钥对的实用方法。最后,作者结合一个自动化部署脚本的实例,展示了如何将这些进阶配置融入CI/CD流程,显著提升了运维工作的安全与效率。

本机暂存
IT 2011-09-07 23:11:16 / 累计浏览 3,686

浅谈绕过WAF的数种方法

这篇讲的是,在当今Web安全中,Web应用防火墙已成为一道标准防线,但并非绝对壁垒。作者从WAF基于规则与流量分析的核心工作原理出发,直面“如何绕过它”这一实际攻防命题。 文章并未停留在理论,而是剖析了数种具体且经典的绕过技术。比如,利用HTTP参数污染(HPP)制造前后端解析差异来隐藏恶意参数;或通过简单的大小写变换、关键字拆分,让攻击载荷逃离基于关键词的匹配规则。更深入地,文章解释了如何使用URL编码、Unicode编码等方式变换恶意字符,以及利用分块传输编码(Chunked Transfer Encoding)的延迟解析特性,来规避实时检测。每种方法都点明了其核心思路:即寻找WAF规则与后端服务器解析逻辑之间的缝隙。 值得注意的是,作者在展示攻击手法的同时,也简要点明了防御思路,例如规范输入、统一解析和部署高级语义分析,使得这篇文章不仅是攻击手册,也包含了加固的思考。对于安全从业者而言,理解这些“矛”的原理,正是为了更好地锻造“盾”。

本机暂存
IT 2011-09-04 22:44:22 / 累计浏览 5,061

互联网上的单点登录研究

这篇讲的是互联网上一个经典又实用的问题——如何让用户登录一次就能畅游多个网站?作者从单点登录技术的一般模型讲起,清晰地拆解了用户、身份提供者和服务提供者这三角关系。文章的核心篇幅,则聚焦在两种主流方案的对比与剖析上。 一方面,详细拆解了当时微软主导的Passport协议。它基于Kerberos机制,通过中央服务器统一管理认证,流程清晰但“中心化”色彩浓厚,安全与隐私曾引发广泛质疑。另一方面,深入剖析了自由联盟(Liberty Alliance)提出的开放规范。它采用SAML标准,构建的是一个“联邦式”的身份网络,允许多个独立的身份提供者共存,更注重分布式的信任与用户对个人信息的掌控权。 文章不止于介绍原理,更难得的是结合了“个人域名作为身份标识”的实现案例,并最终回归现实,冷静分析了这些协议在可行性上的差异与各自存在的不足。对于想理解SSO技术演进脉络、对比“中心化”与“联邦式”身份架构优劣的读者来说,这篇文章提供了非常扎实的技术底本和清晰的视角。

本机暂存
IT 2011-08-26 22:33:34 / 累计浏览 6,302

你会做Web上的用户登录功能吗?

这篇讲的是Web用户登录功能中那些容易被忽略的安全陷阱。作者从实际观察到的许多网站登录实现问题出发,指出这个看似基础的功能,实际做起来比想象中复杂。 文章首先拆解了常见的错误做法——比如前端明文传输密码、数据库使用明文存储、缺乏防护的暴力破解机制等。随后详细对比了安全实现的核心要素:必须使用HTTPS全站加密传输,后端密码存储需采用加盐哈希(如bcrypt),并设计合理的登录失败限流策略。同时,文章也提醒开发者关注会话管理(如HttpOnly、Secure标记的Cookie)和CSRF防护。 这些细节直接关系到用户数据安全。作者通过具体案例说明,省略任何一个环节都可能导致账户被批量入侵。文章结尾强调,登录模块是安全架构的第一道门槛,值得开发者用更严谨的态度来设计和实现。

本机暂存
IT 2011-08-23 13:51:54 / 累计浏览 2,302

CALL指令有多少种写法

这篇讲的是作者作为团队里的“救火队员”,接到一个实际需求:给定一个内存地址,判断它前面是否恰好是一条CALL指令——这常见于逆向工程或漏洞分析场景。由此出发,文章深入探讨了CALL指令在x86架构下令人眼花缭乱的编码形式。 文章系统地对比了多种写法。例如,最直接的近调用(E8)如何通过相对偏移定位目标函数;远调用(9A)在保护模式下如何切换代码段;以及通过寄存器(FF D0)或内存地址(FF 15)进行间接调用的不同情况。关键差异在于跳转目标的寻址方式(绝对地址 vs. 相对地址)和操作数长度,这直接决定了指令的灵活性、效率以及在二进制分析中的可识别性。 作者没有停留在罗列,而是结合逆向场景,点明了不同写法的应用特点。比如,直接调用(E8)结构清晰但目标固定,适合静态分析;间接调用(FF 15)则更灵活,常用于虚函数表或导入函数调用,是动态行为分析的重点。文章将这些枯燥的编码细节,与“如何识别一条CALL”这个实际问题紧密结合,帮助读者建立起清晰的概念框架。

本机暂存
IT 2011-08-23 13:50:42 / 累计浏览 2,585

以浏览器为核心的客户端软件的安全问题

这篇文章聚焦于一个正变得越来越普遍的现象:为了提升开发效率,不少桌面客户端软件开始将浏览器作为界面渲染引擎。作者从这个技术选型的背景出发,深入剖析了随之而来的独特安全风险。这类混合架构虽然能快速利用JavaScript、Flash等Web技术,但也意味着Web世界中成熟的安全威胁(如跨站脚本攻击)会直接迁移到本地应用环境中,可能导致本地数据泄露或权限提升。文章不仅点出了问题的核心,更进一步探讨了如何在享受浏览器便利性的同时,构建必要的安全边界来应对这些挑战。对于正在使用或考虑采用此类技术栈的开发者与安全工程师来说,文中对风险点的梳理提供了清晰的预警和防护思路。

本机暂存
IT 2011-08-22 12:18:20 / 累计浏览 7,443

你能相信自己的眼睛吗?

这篇文章讲的是一个特洛伊病毒如何用视觉诡计在电脑上“隐身”的故事。作者从一个客户提交的病毒样本说起,这个样本本该修改系统hosts文件以劫持两个社交网站,但打开文件一看,却干干净净,没有任何劫持条目。 谜底在于,黑客在同一个目录下创建了一个隐藏的、真正的hosts文件。这个文件利用了一个极其刁钻的技巧:它的文件名虽然看起来也是“hosts”,但其中的字母“o”被替换成了Unicode编码中一个西里尔字母“о”。在普通视图下两者几乎一模一样,但系统读取的是包含恶意重定向规则的那个隐藏文件。 文章由此延伸,指出这并非个例。黑客还会使用Unicode控制字符(如RLO)来反转文件名,将“picgpj.exe”伪装成一张图片文件,诱使用户双击。这些手法的共同点在于,它们都利用了Unicode字符的视觉相似性来欺骗人眼,而非对抗计算机本身。 作者最终提出的观点直指核心:在精心构造的字符诡计面前,我们肉眼的观察并不可靠。这篇文章生动地揭示了攻击者如何利用编码层面的特性来突破常规防御思维,提醒我们在排查问题或鉴别文件时,需要更深入底层原理的视角。

本机暂存
IT 2011-08-19 23:18:41 / 累计浏览 7,112

DNS 隧道

这篇讲的是DNS隧道这项“冷门”技术如何变身为一种“免费上网”方案。作者从自己在新西兰度假时的网络受限经历谈起,回忆起了早年在技术社区看到的相关讨论。 DNS隧道的原理并不复杂:它把常规的网络数据包巧妙地封装在DNS查询和响应报文里。由于DNS是互联网最基础、通常不会被完全封锁的协议,这使得数据可以“借用”这条隐蔽通道传输。文章展示了如何利用特定工具,让被严格管控或需要额外付费的网络环境,通过解析DNS流量来访问外部内容。 不过,作者也指出了其局限性。这种方式速度极慢、极不稳定,且对管理员而言并非不可察觉。它更像是一种技术极客的思维实验和应急手段,而非可靠的长期解决方案。文章真正有趣的地方在于,它引发了这样的思考:在高度结构化的协议中,是否存在这样被我们忽视的“灰色地带”?这种对网络底层逻辑的探索本身,就是技术探索精神的一种体现。

本机暂存
IT 2011-08-19 23:14:53 / 累计浏览 3,401

在函数外存取局部变量的一个比喻

这篇讲的是C/C++中一个经典又容易踩坑的问题:为什么函数返回的局部变量地址会失效? 作者从StackOverflow上一段试图在函数外通过指针访问局部变量的代码出发,指出这种操作实际上触发了“未定义行为”。有趣的是,他没有直接罗列内存栈帧、作用域规则这些概念,而是用了一个巧妙的比喻:把函数的栈帧想象成一个“临时便签纸”。函数运行时,就在纸上写下局部变量的值;函数返回后,这张“纸”就被系统收回了,但指针p还傻傻地指着那张已经被擦除或准备覆盖的旧便签。所以通过p去读写,结果完全不可预测。 这种比喻把抽象的内存管理机制,变成了直观的生活经验。文章最终揭示的核心是:在栈上分配的生命周期,严格受限于函数的执行过程。理解这一点,就能自然避免那些“看起来对,实则危险”的编码习惯。

本机暂存