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

安全

共 396 篇文章

IT 2013-10-17 12:20:06 / 累计浏览 2,878

webgame中常见安全问题、防御方式与挽救措施

这篇讲的是网页游戏开发者在实际项目中遇到的安全“坑”与应对策略。作者从知乎上一个关于游戏安全的问题出发,结合自身经历(包括一次因整型溢出导致的刷钱bug),决定从研发者视角系统梳理安全问题。 文章聚焦几个核心场景:登录认证中hash字符串的时效性与绑定信息设计;联运游戏充值接口的签名验证,并以腾讯接口为例展示了严谨的签名逻辑;以及由于参数未过滤直接include导致的远程文件引入漏洞(RFI)。针对RFI,作者分享了其项目通过Gateway统一入口、结合类反射机制进行严格过滤的解决方案。此外,文章也简要提到了SQL注入在AMF等特定消息格式下可能被忽视的风险,并指出了解决方向。 作者特别强调,他修改了原知乎问题的描述,将重点从“如何入侵”转向“如何防御”与“事后最小化损失”,这也正是文章的核心价值:它不仅揭示漏洞原理,更侧重于提供可落地的防御编码实践与架构改进思路,旨在加固游戏安全壁垒,减少厂商与玩家损失。

本机暂存
IT 2013-10-15 13:45:26 / 累计浏览 2,529

挖漏洞有什么社会价值?

这篇源自安全圈的一场热议,探讨了一个看似矛盾却本质深刻的问题:挖掘漏洞究竟创造了何种社会价值? 从微博上的一则提问出发,多位安全专家给出了截然不同的视角。有观点认为,漏洞挖掘本质上是一种更深层的质量控制,类似于软件测试;也有观点从经济角度剖析,认为其价值在于引发“价值重分配”,攻击者与防护者在此过程中各获所需。更深入的讨论则将其置于人类社会发展的框架下:在信息化日益重要的今天,挖漏洞是实现层面的风险控制,旨在降低整个社会因系统脆弱而面临的减速甚至毁灭风险。 作者并未止步于此,而是将思考延伸至各类精巧的“黑客工具”。他坦言,若以当下普世价值观衡量,这些用于破坏的技术很难被赋予正面意义。但若将其视为人类历史进程中一个必然存在的、关于“安全”与“对抗”的古老命题的当代映射,或许能豁然开朗。正如历史上的冲突在带来灾难的同时也客观推动了技术飞跃,未来的某些重大突破,或许正孕育于这些当下被视为“邪恶”的技术探索之中。

本机暂存
IT 2013-10-08 12:15:24 / 累计浏览 2,903

防火墙的目标地址转换和源地址转换

作者从一起防火墙故障出发,探讨了目标地址转换与源地址转换的配置逻辑。故障表现为外网用户能成功发送请求到内网网站,却始终收不到响应。排查发现,根源在于内网服务器配置了两块同网段网卡且均设置了网关,导致返回数据包的源地址与请求进入时的目标地址不一致,防火墙因此无法将响应数据正确关联到原有会话。 要解决这一问题,需要理解防火墙的数据包处理流程。在常规的“外网访问内网”场景中,通常只需配置目标地址转换。但在上述网卡配置错误的特殊情况下,必须同时配置源地址转换,强制让内网服务器的返回流量经过防火墙,从而维持会话的对应关系。同样,当“内网通过域名访问另一内网服务器”时,源地址转换也是必需的,它避免了内网主机间直接通信导致防火墙无法跟踪连接状态的问题。 文章通过实例拆解了两种地址转换在不同场景下的必要性,核心在于确保返回数据包的路由路径能被防火墙正确识别和管理。作者最后指出,虽然具体防火墙机制各异,但基本原理相通:在规划地址转换时,必须考虑数据包返回的路径,否则可能导致通信失败或应用获取不到真实客户端IP。

本机暂存
IT 2013-09-23 13:35:29 / 累计浏览 1,732

基于语法分析的PHP webshell扫描工具–Pecker Scanner

这篇讲的是一个PHP webshell扫描工具——Pecker Scanner的开发思路与实现。作者从早年基于正则匹配的扫描尝试出发,反思了当时工具的不足,比如容易把注释或非恶意代码中的危险函数也标记为误报。为此,他详细对比了三种扫描方式:最基础但漏洞最多的特征关键字匹配、更精确但仍有漏报的正则表达式匹配,以及通过语法分析剥离注释、字符串和变量,仅对实际执行的危险函数进行检测的语法语义分析。 文章的核心在于介绍Pecker Scanner的设计选择。这款工具首先采用语法分析来解决漏报问题,并结合服务器云端判断,通过比对已知的恶意代码指纹和项目上下文,来进一步降低误报率。作者还展示了工具生成的扫描报告样例,并分享了其GitHub开源项目、最新版本下载地址以及如何参与贡献。 作为一个从个人遗憾中诞生的项目,Pecker Scanner的诞生故事也反映了作者对开源社区的热情,以及对代码安全检测技术从简单到严谨的演进思考。

本机暂存
IT 2013-09-07 15:39:56 / 累计浏览 5,453

深入浅出Session攻击方式之一 – 固定会话ID

这篇技术文章聚焦于Web安全中一种具体且危险的攻击手法:固定会话ID(Session Fixation)。作者从PHP应用普遍面临的安全挑战入手,深入剖析了攻击者如何诱使用户使用其预设的Session ID来访问系统,从而实现会话劫持。 文章不仅阐述了攻击原理——即攻击者通过URL参数(如`?PHPSESSID=1234`)等手段固定一个会话标识,并用直观的代码示例和测试过程演示了其危害性:只需访问特定链接,新浏览器就能“继承”之前浏览器的会话状态。更关键的是,文章给出了明确的防御方案:核心在于在用户登录、权限变更等关键节点,及时调用`session_regenerate_id()`函数重新生成Session ID,彻底切断攻击者的预设路径。 作者还进一步探讨了经验更丰富的攻击者可能先自行获取合法Session ID再实施固定攻击的场景,强调了防御措施需具备时效性和全面性。整篇文章由原理到实践,再到防御升级,为开发者提供了一份清晰的攻防路线图。

本机暂存
IT 2013-09-04 23:17:55 / 累计浏览 3,883

360的产品经

这篇文章从360这家争议不断但产品屡屡成功的公司切入,分享了三个值得琢磨的产品思维。 第一,用户骂你,往往是对的。作者指出,用户即使对最简单的设置抱怨,也揭示了真实需求,而不是他们“智商有问题”。产品人的傲慢往往会掩盖真正的用户痛点。 第二,创新不止于发明,改进体验也是质变。文章以360和苹果为例,说明他们可能没有开创品类,但通过优化实用性赢得了用户。这种“实用性创新”是很多成功产品的共同特质。 第三,理解弱需求背后的强动机。很多时候用户明知不对仍会这么做,关键不是说教,而是设计更有效的方式来引导行为。这比单纯指出问题更考验产品设计。 虽然360这家公司本身争议不断,但文章提炼出的这些方法论——倾听抱怨、聚焦体验改进、洞察行为动机——确实点中了产品设计的一些要害。对于产品经理和开发者来说,这些来自实战的观察,比纯粹的理论更有嚼头。

本机暂存
IT 2013-08-02 13:25:27 / 累计浏览 3,208

GFW的后果 兼谈管制

这篇从马云关于互联网管制的言论切入,用数据梳理了中国互联网在“保护”下的真实处境。作者调出2006年的Alexa全球前十网站列表,其中中国网站占四席;而到了2013年,这一数字减至三家,且百度等头部站点的排名略有下滑。更关键的是,在这段时期里,海外榜单迅速纳入了Facebook、YouTube等新巨头,国内的新鲜血液却相对稀缺。 文章的核心观点是:GFW在屏蔽外部竞争、为国内企业提供“安全”发展环境的同时,也深刻塑造了中国互联网的基因。由于政治表达空间有限,大量的用户注意力和资本涌向了娱乐与情绪宣泄领域,而非深度信息获取。这导致中国互联网可能正走向一条“娱乐化”的道路,与更偏向信息与思考的美国互联网形成差异。作者将这称为一种“中国特色”,并预见其速度可能会因资本催化而加快。 这不仅仅是一次对政策与技术墙的讨论,更是对一个产业生态如何被无形力量重塑的观察。它提醒我们,任何技术干预都具有双面性,在获得短期庇护与独特发展模式的同时,也可能在某种程度上限定了长远的可能性和想象空间。

本机暂存
IT 2013-07-28 15:43:45 / 累计浏览 5,671

TCP洪水攻击(SYN Flood)的诊断和处理

这篇讲的是作者团队如何应对一场猛烈的SYN Flood攻击。当网站业务曲线大跌、Web服务器CPU高企、SSH登录困难时,他们从系统日志的“possible SYN flooding”警告和netstat命令中高达数万的SYN_RECV连接状态,迅速锁定了TCP洪水攻击这一元凶。 文章没有停留在原理层面,而是给出了从应急到根治的实战路径。初期用iptables粗暴封禁IP段是救火但易误伤;借助F5设备让客户端先完成三次握手再转发后端,被证明效果显著。但作者更分享了无需昂贵设备的内核参数调优方案:将tcp_synack_retries从默认的5次改为0,能让“半连接”的保持时间从180秒骤降至3秒,避免资源耗尽。同时配合调大tcp_max_syn_backlog、文件句柄数等参数,实测后即使在攻击下服务也能保持响应。 这是一篇典型的“踩坑”复盘,它清晰地展示了从发现问题、诊断根因,到尝试不同解决方案并最终沉淀出一套可用参数配置的全过程。对于运维和后端开发者而言,文中关于网络状态的判断命令和sysctl.conf的具体配置具有很高的参考价值。

本机暂存
IT 2013-07-26 13:40:37 / 累计浏览 4,167

请注意PHP程序里的敏感信息

在PHP开发中,数据库密码等配置信息如果直接硬编码在代码里,一旦代码仓库需要共享给第三方审查或合作开发,就会带来泄露风险。作者从这个常见的安全与协作矛盾出发,介绍了如何将敏感信息从代码中剥离出去。 核心方案是利用服务器环境来承载这些配置。一种常见做法是通过Nginx的`fastcgi_param`指令进行映射,代码中通过`$_SERVER`变量来读取。另一种方案是通过php-fpm的`env`指令设置,同样存放在`$_SERVER`中。文章特别指出,`env`配置必须写在php-fpm的主配置文件`php-fpm.conf`里才能生效。有经验的开发者(如@Laruence)也提示,使用Nginx方案会在每次请求时传输这些参数,可能带来开销,因此通过php-fpm或专用扩展(如hidef)来处理可能更为高效。 最终,通过将敏感信息从代码中剥离,代码变得更加干净,也更容易管理。剩下的安全职责转移到了服务器配置文件的权限控制上,而这通常比管理代码仓库的访问权限要简单得多。文章也顺带提到了一种兼容命令行环境的通用脚本思路。

本机暂存
IT 2013-07-10 13:55:53 / 累计浏览 4,509

QR二维码的攻击方法与防御

这篇来自“黑客讲坛”的文章深入剖析了QR二维码背后的安全隐患。作者blackeagle从二维码的结构原理切入,详细解读了其寻景图案、校准图案等组成部分,并指出其设计上依赖纠错码容错的特性。 文章的核心价值在于揭示了一种具体的篡改攻击方法:攻击者可以通过对比原始QR码与目标恶意码的模块差异,用笔精准涂改少数白色模块,利用QR码自身的纠错能力,就能将扫码结果“劫持”到另一个URL地址。在此基础上,文章进一步归纳了网络钓鱼、恶意软件传播、个人隐私泄露(如火车票二维码信息被识别)等实际攻击场景。 这篇文章不仅科普了二维码的技术细节,更重要的是揭开了日常便捷工具的安全风险一角,让读者认识到每次扫码背后可能存在的“陷阱”,对提升公众和开发者对二维码安全的重视很有启发。

本机暂存
IT 2013-07-10 13:43:42 / 累计浏览 2,460

玩转robots协议

这篇讲的是互联网上一个看似基础却引发过巨头战争的协议——Robots协议。作者从2012年百度与奇虎360之间那场著名的“爬虫纠纷”与亿元索赔案切入,生动地引出了这个“君子协定”的重要性。 文章的核心在于阐明,Robots协议并非技术强制规范,而是网站与搜索引擎爬虫之间的一种行业默契。它通过一个简单的`robots.txt`文件,让网站管理员能够表达自己的意愿:是欢迎所有爬虫,还是只对特定爬虫关闭某些路径。文章用淘宝(完全禁止百度爬虫)和京东(屏蔽特定路径及一淘爬虫)的真实案例做了对比,清晰地展示了不同网站会根据自身商业策略和需求来制定抓取规则。 在讲解具体用法时,文章区分了“基本玩法”和“高阶玩法”。基础部分详细解释了`User-agent`和`Disallow`两大指令,如何屏蔽整个站点、特定目录或文件。而进阶部分则巧妙解决了“如何屏蔽a1-a100目录却单独允许a50”这类实际问题,引入了`Allow`指令的使用逻辑——“谁管得细就听谁的”,并指出了谷歌等搜索引擎对高级指令支持度更好的现状。整个讲解由浅入深,将技术细节融入到了实际场景的考量之中。

本机暂存
IT 2013-07-07 22:18:54 / 累计浏览 3,070

SSH简介

这篇讲解SSH基础知识的文章,从“什么是SSH”直接切入,梳理了这项安全协议从诞生到普及的简要历程,重点则落在了实际操作与安全原理上。 文章系统梳理了SSH的核心用法:从最基础的远程登录命令,到端口参数修改。它详细拆解了SSH保障安全的关键——公钥加密验证流程,并分别阐述了两种登录方式:“口令登录”与“公钥登录”。对于后者,文章不仅解释了免密原理,还一步步指导读者如何生成密钥对、使用`ssh-copy-id`上传公钥,以及如何排查服务端配置问题。 特别值得注意的是,文中对公钥指纹验证、`known_hosts`文件的作用,以及`authorized_keys`文件的具体操作都有细致说明。这些细节对于理解SSH建立信任链的过程至关重要,也为实际配置提供了清晰路线图。对于需要安全远程管理的开发者或运维人员,这是一篇扎实的入门指南。

本机暂存
IT 2013-06-09 13:13:05 / 累计浏览 4,385

一个绝妙的 exploit

这篇讲的是 Linux 内核一个经典的提权漏洞分析。漏洞源于 `perf_swevent_init` 函数中,`event_id` 被定义为带符号的 `int`,而后续检查仅校验了其上界。当传入一个高位为1的负数时,该值能绕过检查并导致 `perf_swevent_enabled[]` 数组越界访问。 作者详细剖析了 exploit 的巧妙思路:利用数组越界,分别对一个内核地址和一个用户空间地址(通过精心计算 `mmap` 得到)执行原子加一和原子减一操作,从而探测出数组基地址。更精妙的是,作者选择了修改中断描述符表(IDT)中某个条目的高32位偏移地址。这个地址原本固定为 `0xffffffff`(内核空间),通过一次原子加一,它被变为 `0x00000000`,从而指向了用户空间。如此一来,触发对应的中断(`int 0x4`)便会跳转到攻击者预先布置好的、用于修改进程 uid/gid 的用户代码,最终获得 root shell。 整个攻击链条的核心,就是一个看似微小的类型符号不一致问题,经过层层推导和内存布局计算,最终转化为强大的攻击能力,令人印象深刻。

本机暂存
IT 2013-06-08 23:36:19 / 累计浏览 4,071

使用Http-only Cookie来防止XSS攻击

这篇文章从Cookie在维持HTTP会话状态中的关键作用切入,揭示了XSS攻击窃取Cookie的典型手法——攻击者只需注入一段简单脚本,就能通过`document.cookie`获取敏感信息并外传。针对此威胁,文章分析了几种常见防护思路的缺陷:与User-Agent绑定易被同步窃取,与IP绑定则影响ADSL等动态IP用户的体验。 核心方案聚焦于**Http-only Cookie**。一旦该属性被设置,浏览器就不会将对应的Cookie暴露给客户端脚本,从根源上切断了XSS攻击读取Cookie的路径。文章具体展示了Http-only的设置语法,并指出ASP.NET等主流框架已提供便捷的配置接口。同时强调,这并非一劳永逸的解决方案——它不能阻止攻击者进行AJAX提交等恶意操作,因此实际部署中必须与其他安全策略组合使用,例如微软的Web Protection Library。 简言之,文章厘清了“为何需要Http-only”以及“它如何工作”,并提醒开发者将其作为纵深防御体系的一环,而非唯一防线。

本机暂存
IT 2013-05-28 22:20:58 / 累计浏览 3,867

Perl 程序源码怎么加密

这篇讲的是如何给Perl程序源码加上一层保护,防止被直接查看。作者从保护SSH密钥和商业程序源码的现实需求出发,介绍了一种基于`Filter`模块的轻量级加密方案。 核心思路是在Perl解释器前插入一个“过滤器”:通过`use`一个自定义模块,在源代码被解析前先进行解密。这类似于PHP中的Zend加密机制。文章详细演示了具体实施步骤:首先下载并解压`Filter`模块,然后需要修改两个关键文件——加密程序`encrypt`和解密端的C代码`decrypt.xs`,在其中设置统一的加密密钥(字符)。使用这个定制好的程序对你的`.pl`文件进行加密,生成后的文件外观已不可读,但功能完全正常。 这个方案的巧妙之处在于,加密与解密使用同一套自定义密钥逻辑。部署时,只需在目标服务器上安装好包含了你修改过的`decrypt.xs`所编译出的so文件的`Filter`模块。由于最终的解密逻辑被编译成了二进制的so文件,密钥不会直接暴露,从而在一定程度上保证了源码的安全性。文章还附带了一个用于验证或还原的反解程序,完成了从加密到部署再到可能的调试的完整闭环。

本机暂存
IT 2013-05-15 22:58:42 / 累计浏览 3,420

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 2013-05-14 22:30:23 / 累计浏览 3,189

open_basedir后可能存在的安全隐患

这篇文章深入剖析了PHP常用安全配置`open_basedir`在实践中暴露出的两个隐蔽风险,均源于底层实现机制。 第一个风险是路径检查的“漏洞”。当代码逻辑对用户输入路径做了简单前缀校验后,若拼接的目录不存在,Windows和Linux文件系统行为不同。但PHP在开启`open_basedir`时,其路径规范化处理会忽略对目录真实存在性的检查。这导致攻击者可能利用`../../`这样的路径,绕过本应受限的目录读取到配置文件等敏感信息,作者指出这更像是一个PHP实现上的小缺陷。 第二个风险则源于配置值的写法差异。如果管理员配置`open_basedir`时路径末尾没有加斜杠(如`/home/www`),而目标目录外恰好存在名称前缀匹配的目录(如`/home/wwwoldjun`),就可能通过目录遍历实现跨越。作者通过虚拟主机环境的渗透实例说明,一个细微的配置笔误就可能让本应隔离的站点彼此暴露。 作者的结论基于实际的渗透测试,这两个发现提醒我们,即使使用了看似“无敌”的安全配置,对底层机制和配置细节的疏忽依然可能留下致命的攻击面。

本机暂存
IT 2013-05-01 18:45:53 / 累计浏览 6,070

腾讯执行的感悟(安全方向)

这篇讲的是作者——一位前阿里安全专家,受邀参加腾讯安全中心的一次闭门沙龙后的思考。文章从个人体验出发,回顾了腾讯长期低调却坚定的安全投入,比如早在“3Q大战”前,其安全负责人就提出“安全是保持竞争力的门槛”,且安全团队的声音能直达CTO张志东这样的最高层。 作者着重分析了腾讯TSRC(腾讯安全响应中心)的活跃运作:通过给报告漏洞的白帽子发放可观奖励,已吸引数百人参与。他进而指出,腾讯、阿里等公司正在有意识地搭建“漏洞提交-奖励”平台,这可能在未来几年改变行业格局——让白帽子能靠挖洞合法养活自己,从而减少漏洞流入黑产,促进安全行业繁荣。文章最后以个人感慨收尾,带着对行业未来的期待。

本机暂存
IT 2013-04-06 23:20:23 / 累计浏览 7,601

中国黑客传说:游走在黑暗中的精灵

这篇报道揭秘了号称“地下黑客世界王者”的匿名人物V的惊人能力与行为准则。他个人掌控着包括运营商内部系统、基础设施服务、大量互联网行业在内的权限,并积累了高达13亿条的去重用户数据,实现了“大数据式黑站”。V曾长期监控一个女孩的全部网络活动,研究保安行为,甚至能定位手机、伪造短信、定向推送信息,其能力已如电影场景。 然而,V恪守古老黑客守则:不破坏、不牟利、保持观察。文章通过具体事例(如他用弱口令数据库查询、控制微博大号等)揭示了顶级黑客对现代网络体系构成的潜在威胁,以及他们可能拥有的巨大舆论影响力。作者最终借V之口传递一个核心观点:真正的强大黑客应致力于让社会听到真实的声音,而非作恶。在绝对的技术能力面前,道德成为唯一的约束。

本机暂存
IT 2013-04-06 23:01:43 / 累计浏览 16,900

Chrome和goagent的配置方法,你懂的

这篇教程详细讲解了如何利用Google App Engine与GoAgent,在Chrome浏览器中搭建一个自主可控的代理环境。文章从注册GAE账号、创建应用讲起,一步步指导读者下载并配置GoAgent客户端,包括修改proxy.ini配置文件、运行上传脚本将服务端部署到GAE。 在客户端设置部分,教程重点介绍了Chrome插件Proxy SwitchySharp的安装与配置,特别是通过导入预设的配置文件,并立即更新自动代理规则列表,来简化后续的使用。整个过程配有截图,步骤清晰。最终,作者指出当SwitchySharp运行在自动切换模式且GoAgent客户端启动后,配置即告完成。这为需要管理自身网络访问规则的技术用户提供了一个具体的、可复现的操作方案。

本机暂存