网络编程安全:服务器端与客户端的风险及应对
1. PHP缓冲区溢出漏洞
PHP的 php_mime_split
(在PHP 4.1.0、4.1.1、4.0.6及更早版本)和 php3_mime_split
(在PHP 3.0.x版本)存在缓冲区溢出漏洞。当 php.ini
中启用 file_uploads
时,远程攻击者可通过 multipart/form-data
HTTP POST请求执行任意代码。最初,该漏洞被认为仅能使Apache崩溃,Gabriel A. Maggiotti的利用代码可在 http://qb0x.net/ 获取,但后来PHP开发者发布公告指出情况并非如此。
受影响的版本包括PHP 3.0.10 - 3.0.18、4.0.1 - 4.0.3pl1、4.0.2 - 4.0.5、4.0.6 - 4.0.7RC2以及4.0.7RC3 - 4.1。不过,不同平台(据报道Linux、Solaris和SolarisX86受影响最严重)上的攻击效果有所不同。堆溢出仅影响PHP 4.0.1 - 4.0.3pl1。解决方法是升级PHP版本。
2. 安全编程与测试工具
以下是一些有助于测试代码安全性的工具:
| 工具名称 | 用途 | 获取链接 |
| — | — | — |
| lclint | 类似lint的ANSI C检查器,可检查危险的数据共享、被忽略的返回值、空值、内存管