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

安全

共 176 篇文章

IT 2013-05-01 18:45:53 / 累计浏览 5,977

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

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

IT 2013-04-06 23:20:23 / 累计浏览 7,527

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

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

IT 2013-03-11 13:30:56 / 累计浏览 5,353

Servlet线程安全问题

这篇讲的是开发中容易踩到的陷阱:Servlet的线程安全问题。文章从Servlet默认的多线程执行模型切入,指出当多个线程并发访问同一个Servlet实例时,如果代码不当,会产生难以复现的bug。 作者用了一个很直观的代码案例:在service方法中使用了一个实例变量PrintWriter。当用户a和b几乎同时请求时,由于线程调度和共享实例变量,用户a的浏览器收到了空白页,而a的信息却错误地显示在了用户b的页面上。文章进而从Java内存模型(JMM)的角度,分析了线程工作内存与主内存的同步延迟,如何导致了这一问题的随机性与危险性。 针对该问题,文章总结了三种解决方案:一是实现SingleThreadModel接口(但已被废弃,且不能解决所有问题);二是使用synchronized关键字同步代码块;最根本的,是避免在Servlet中使用实例变量,将需要的数据作为局部变量处理。这对于理解Web容器如何执行Servlet,以及如何编写可靠的并发代码,都是很好的一课。

IT 2013-03-03 22:58:47 / 累计浏览 6,326

中间人攻击(man-in-the-middle attack):你和互联网中间的第三人

这篇从GitHub访问异常的事件谈起,具体解释了“中间人攻击”这一安全威胁。作者先用爱丽丝与鲍伯的通信故事,生动演示了攻击者如何在看似加密的通道中窃听并篡改信息,指出在公共Wi-Fi等场景下,密码和聊天记录都可能暴露。 文章进一步对比了主流浏览器对这类攻击的检测能力。现代浏览器在遇到伪造SSL证书时会持续发出醒目警告,而当时市场占有率很高的360安全浏览器,在第二次访问同一伪造站点时,竟弹出了“绿色网站认证”的提示,这与它的“安全”名称形成了鲜明反差。 作者基于此事件强调,中间人攻击具有隐蔽性和现实危害,那次针对GitHub的攻击就持续了约一小时。文章最后提供了一个可用于实时比对真假证书的工具,帮助读者在实践中加深理解。

IT 2012-12-21 13:38:39 / 累计浏览 8,074

网址加密(URL加密)(RC4、PHP、密钥长度可变)

网址加密是一个常见需求,但作者发现网上很难找到现成的可用案例。他系统梳理了主流方案,指出Base64只是编码并非加密,且字符集不适合URL;自定义加密算法则违背了“安全寓于密钥”的现代密码学原则。 作者进一步对比了AES与RC4两种算法。AES虽然强大,但加密哪怕一个字节的结果也超过30字符,长度随输入增长过快,不适合加密长网址。而RC4在保证安全性和速度的同时,生成的密文长度要短得多,更适合URL场景。 最终,作者选择了RC4作为加密方案,并直接分享了PHP实现的完整类库与调用示例。他演示了如何通过密钥加密字符串并解密,让这份“缺失”的网址加密方案能直接用于实际项目。

IT 2012-12-19 13:45:29 / 累计浏览 6,595

网站密码存储方案比较

这篇讲的是在GPU算力飞速发展的今天,网站该如何安全地存储用户密码。作者对比了几种主流的不可逆加密方案。 传统的一次MD5或加盐的两次MD5方案,虽然使用广泛,但面对如今动辄超CPU数十倍算力的GPU集群,暴力破解已成可能,安全性堪忧。 文章重点分析了两种更安全的现代方案:PBKDF2和bcrypt。PBKDF2(如Django 1.4默认的实现)通过成千上万次迭代的HMAC-SHA256运算,大幅增加暴力破解的时间成本。bcrypt则在实现上更为简洁,但需注意它不支持超过55字符的密码。 作者指出,两者各有拥趸,没有绝对的优劣,选择取决于具体场景。文中提供了Django和PHP的PBKDF2实现代码,方便读者直接参考。对于正在构建用户系统的开发者来说,这是一份清晰实用的方案选型指南。

IT 2012-12-19 13:39:15 / 累计浏览 6,429

md5到md5破解的一些科普

这篇讲的是如何正确理解MD5这一经典哈希函数及其“被破解”事件。文章作者从MD5的多对一映射本质出发,解释了为何它是“不可逆”的,进而引出了密码学中关键的“碰撞”概念。 核心对比在于“无弱碰撞”与“无强碰撞”的区别。作者用生动的生日悖论说明,找到一对碰撞(强碰撞)的复杂度约为O(sqrt(m)),远低于遍历的O(m),这为攻击提供了理论可能性。文章重点阐述了王小云教授的突破性贡献:她找到的算法能比生日攻击更快地构造出强碰撞,而非通过密文反推明文。这并不意味着MD5可以直接“解密”,而是破坏了它在验证文件完整性或数字签名时的可靠性基础。 后续提到的“预测大选”实验,正是利用了快速构造前缀碰撞的技术,以一种巧妙的方式展示了算法漏洞的实际应用。最终文章落脚于现实影响:尽管MD5在部分安全场景已弃用,但其漏洞提醒我们,从非官方渠道下载文件时,仅比对MD5值已不足以保证安全。

IT 2012-12-16 23:56:24 / 累计浏览 4,866

宽带网络运营商劫持网站的技术分析

这是一篇关于宽带运营商劫持用户网页流量的深度技术排查记录。作者从自家网络出现异常弹窗广告入手,发现无论访问大小网站,网页都会被远程注入 iframe,导致浏览器右下角弹出无关的 Flash 广告。 文章的核心在于技术分析过程。通过直接发送 HTTP 请求而非依赖浏览器缓存,作者捕获了被篡改的完整响应包,揭示了运营商如何用一个“空壳”页面加载原始网站并侧载第三方广告脚本。更进一步,作者通过 Whois 查询追踪到广告域名(istreamsche.com)指向北京集奥众和公司,并在联系客服时发现,连运营商自家技术人员的办公网络也未能幸免,将问题根源指向了上级运营商或高层决策。 面对这种普遍存在的“流量劫持”,文章给出了一个切实可行的用户端解决方案:通过浏览器插件(如 User Agent Switcher)清空或修改发送给网站的 User-Agent 标识。由于大部分网站不依赖此字段进行功能判断,该方法能有效绕过运营商的劫持规则,恢复干净的网页浏览。

IT 2012-12-11 22:00:01 / 累计浏览 6,931

浅谈php web安全

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

IT 2012-12-11 21:51:31 / 累计浏览 7,821

各种浏览器审查、监听http头工具介绍

这篇文章的核心是在帮开发者解决一个实际问题:如何方便地查看和调试HTTP请求/响应头信息。作者从自己研究浏览器缓存和HTTP协议的实践出发,系统梳理了六种不同的解决方案。 文章详细对比了主流浏览器及相关工具的内置审查或插件支持。这包括了谷歌浏览器(Chrome)的开发者工具、专业的HTTPWatch、傲游3.0的网络面板、Safari浏览器上的Firebug Lite插件、火狐浏览器(Firefox)自带的Firebug,以及IE浏览器的内置监听工具。对于每一种工具,作者都给出了具体的开启步骤(比如快捷键或点击位置),并说明了如何在刷新页面后定位到目标资源,最终查看到包含Cookie、缓存状态等详细信息的HTTP头。 这些工具虽然入口各异,但核心目标一致,都是为了让开发者能“看见”网络传输中肉眼不可见的头部数据。对于前端工程师调试布局和资源加载,或是后端开发者排查缓存策略与接口响应,它们都是不可或缺的效率利器。文章用步骤截图的方式清晰地演示了操作流程,实用性很强。

IT 2012-12-11 13:33:03 / 累计浏览 7,932

程序员疫苗:代码注入

这篇讲的是“代码注入”这类常见的安全漏洞,作者将其比喻为程序员世界的病毒,并希望通过真实代码演示来为新人“注射疫苗”。文章详细剖析了Shell注入、SQL注入等多种攻击手法。 例如,在Shell注入中,通过拼接未经校验的用户输入,攻击者可以轻松执行任意系统命令。而在SQL注入部分,作者将其称为“黑客的填空游戏”,演示了如何通过构造恶意输入来绕过登录验证、窃取数据甚至删除整个数据库。文章还点出了变量覆盖、文件包含等其他危险操作。 作者通过Perl、PHP等不同语言的实例,清晰地展示了漏洞的原理和可怕后果。其核心目的不是罗列防御方法,而是让开发者先深刻理解攻击是如何发生的,从而在编码之初就建立起牢固的安全意识。这就像为程序员接种了第一剂防御“代码病毒”的疫苗。

IT 2012-11-27 13:44:15 / 累计浏览 5,809

国内团购网前端严重安全漏洞– 以满座网为案例分析

这篇讲的是作者以满座网为例,深入剖析了一个典型的前端安全漏洞。文章从日常技术排查出发,演示了如何利用浏览器开发工具(Firebug)和简单的jQuery命令,绕过团购页面对商品购买数量的前端限制。 作者发现,尽管网站前端代码设置了最多999件的购买上限,但这一限制仅存在于客户端。通过修改本地参数,理论上可以提交极大数量的订单。这个漏洞的根源在于“前端不信任后端,后端不信任前端”这一基本安全原则被忽视。仅依赖前端进行关键业务逻辑校验(如数量、价格),而缺乏后端的有效复核,为系统留下了风险。 案例的警示意义很直接:在Web 2.0时代,JavaScript和Ajax的便利不应以牺牲安全性为代价。对于涉及交易的系统,任何关键数据都必须在服务端进行严格校验。文章也借此提醒开发者,构建可靠的应用需要将安全成本纳入整体规划,不能心存侥幸。

IT 2012-11-13 13:52:34 / 累计浏览 11,312

你必须了解的Session的本质

这篇讲的是PHP中Session的本质与安全陷阱。作者从HTTP协议无状态性这一底层特性切入,解释了为什么我们需要Session来维持应用状态。他详细拆解了Cookie作为HTTP扩展的工作原理,以及Session ID如何在客户端与服务器之间传递——无论是通过自动的Set-Cookie头,还是通过URL参数或POST数据。 文章特别强调,许多开发者误以为PHP内置的Session机制自动提供了安全性,但事实并非如此。作者通过一个具体的会话劫持攻击示例(攻击者窃取并重放PHPSESSID),清晰地展示了如果仅依赖默认机制,会话数据将面临风险。他指出,安全必须由开发者主动加固,而非框架自动保障。 整体上,这篇文章像一份面向PHP开发者的安全指南,从协议基础讲到实战风险,核心观点是:理解Session背后的网络交互细节,是构建安全会话管理的第一步。

IT 2012-10-22 21:57:48 / 累计浏览 6,313

WordPress安全建议

这篇指南从WordPress高达50%的市场占有率出发,直接点明了一个现实:网站越受欢迎,越容易成为黑客的目标。它并非空谈理论,而是针对站长们普遍关心的安全问题,提供了一套从基础到进阶的实操建议。 核心方案围绕几个关键点展开:首先是加固访问入口,强烈建议摒弃默认的admin用户名,并搭配高强度随机密码。其次是保持系统更新与备份,强调每周检查版本更新,并使用插件或脚本定期备份数据库与文件,这是安全底线。 文章的重点在于推荐了几款实用的安全插件,如WordPress Firewall 2用于拦截常见攻击,BulletProof Security通过.htaccess强化防御,以及Better WP Security来隐藏常见漏洞。此外,它还提到了使用官方主题市场、配置CDN与SSL证书等辅助手段。 总的来说,文章汇集了一系列具体、可落地的安全配置方法和工具推荐。它清晰地传达了一个观点:虽然没有绝对的安全,但通过这一系列扎实的加固措施,能大幅度降低WordPress网站被入侵的风险。

IT 2012-09-20 13:56:43 / 累计浏览 5,889

anti spam杂谈

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

IT 2012-09-19 23:36:23 / 累计浏览 5,470

个人数据安全 (2):保护即时通讯隐私

这篇讲的是如何保护即时通讯的隐私,作者从“我们每天的聊天真的安全吗”这个疑问出发。文章指出,即便使用了主流通讯工具,聊天记录仍可能因设备失窃、云端同步或服务商访问而泄露,而且我们发出的“消息发给谁、何时在线”这类元数据,也常被忽视地收集和分析。 作者的核心方案是分层次加固:首先,推荐采用经过独立审计的端到端加密协议(如Signal协议),确保只有通信双方能解密内容;其次,深入探讨了如何对抗元数据泄露,例如通过洋葱路由或使用能最小化元数据收集的App;最后,文章没有停留在工具推荐,而是提供了具体的设备设置指南,比如关闭云备份、启用应用锁、管理密钥与安全号码验证等实操步骤。 这篇文章的结论很明确:隐私保护不是单一开关,而是涵盖工具选择、设置习惯和安全意识的多层防御体系。它没有停留在理论层面,而是给了读者一份从聊天软件到手机系统都可逐步落实的检查清单,帮助我们在数字交流中守住私密空间。

IT 2012-09-19 23:35:49 / 累计浏览 4,694

个人数据安全 (1):用GnuPG保护个人隐私数据

这篇是个人数据安全系列的开篇,作者从构建一套实用的隐私保护体系出发,选择GnuPG这个经典开源工具作为起点。文章没有停留在理论层面,而是详细演示了如何用GnuPG为文件加密、实现邮件安全签名与加密,并解释了其背后的非对称加密原理。核心操作流程包括生成密钥对、公钥分享与私钥保护,作者还特别强调了密钥管理中“信任”与“撤销”的实际意义,给出了避免密钥泄露的具体建议。 对于想动手的读者,文中清晰区分了对称加密与非对称加密的适用场景,并指出GnuPG在跨平台文件传输、敏感通信中的核心价值。系列后续计划覆盖更多数据安全环节,而这第一篇扎实地铺好了技术基础——它不只告诉你一个工具怎么用,更勾勒出个人主动管理数据安全的基本逻辑框架。

IT 2012-09-03 23:12:56 / 累计浏览 7,279

前端开发中Cookie那些事儿

这篇讲的是前端开发中频繁操作Cookie的实战经验总结。作者从一个实际项目的开发经历出发,梳理了操作Cookie时容易被忽视的几个关键点。 文章没有停留在基础语法层面,而是聚焦于实践中的细节与陷阱。例如,详细解释了如何正确设置Cookie的`path`、`domain`等属性以避免作用域问题,剖析了`HttpOnly`、`Secure`等安全属性在防范XSS等攻击时的实际价值。此外,作者还结合项目场景,探讨了在现代前端框架下处理Cookie的跨域限制与同步更新问题。 这并非一篇简单的属性列表,而是将零散的知识点串联成了一个在项目中操作Cookie的“避坑”与最佳实践指南,对于经常需要处理会话与状态管理的前端开发者来说,其中的经验教训能直接帮助提升代码的健壮性与安全性。

IT 2012-08-27 12:41:37 / 累计浏览 5,593

几种极其隐蔽的XSS注入的防护

这篇讲的是几种极其隐蔽的XSS注入方式及其防护策略。文章开篇点明了XSS攻击的本质:网页因用户输入而生成了意料之外的、可执行的JavaScript代码,并被浏览器执行,导致恶意脚本在受害者上下文中运行。 作者接着聚焦于那些容易被开发者忽略的隐蔽注入点。这些注入路径往往隐藏在看似安全的HTML属性编码、JavaScript上下文内的动态拼接,甚至是自定义的事件处理函数中。它们的特点是能绕过常见的黑名单过滤或简单的转义机制,攻击载荷的构造与上下文环境紧密相关,使得检测和防护变得尤为困难。 针对这些“隐藏的角落”,文章提出了一套组合防护思路。核心并非依赖单一的过滤规则,而是强调基于语义的深度分析与上下文感知的输出编码。例如,在将数据放入JavaScript变量或函数参数时,需要使用不同于HTML属性的专用编码方法。同时,文章也提倡部署严格的 CSP 策略作为纵深防御,从根本上限制未授权脚本的执行权限,为开发者提供了从编码实践到架构加固的多层次防护参考。

IT 2012-08-20 23:35:14 / 累计浏览 4,454

SAE云服务安全沙箱绕过5(强制修改class私有权限)

这篇讲的是如何在SAE云环境中突破安全沙箱限制,强制修改Java类私有权限的具体实践。作者从实际开发中遇到的权限冲突问题出发,深入分析了SAE平台沙箱机制的运作原理,发现其通过类加载器和安全管理器实现了对私有成员访问的严格管控。文章核心思路是借助自定义类加载器,在加载目标类时利用反射技术重写类的访问控制检查,从而绕过默认的安全限制。实现过程中,作者详细展示了如何通过重写`checkMemberAccess`方法,并结合`setAccessible(true)`等关键技术点完成权限修改。实验结果表明,该方法能够稳定地在特定版本的运行环境下生效,但同时也明确指出了其局限性——该技巧依赖于特定的JVM版本和安全管理策略,并非通用解决方案。文章最后强调了这种操作在云安全边界探索中的意义,提醒开发者需谨慎权衡技术研究与合规使用之间的界限。