安全编程与自定义错误文档创建指南
安全编程
在编写用于Web的CGI程序时,要时刻牢记安全性,因为这些程序可能会被数百万人访问,其中不乏心怀不轨之人。下面介绍一些确保脚本安全的编程实践。
不通过Shell运行Shell命令
在CGI脚本中使用Shell命令存在风险,特别是在命令中使用用户输入时。风险源于Shell的命令行解析器,它会将一些字符解释为对Shell本身的指令,这些字符被称为元字符。例如:
ls -al | grep “passwd”; cat `find . -name “thisfile”`
其中,管道符(|)、分号和反引号(`)都是元字符。
为避免这些风险,可以采用以下方法:
- 去除元字符 :使用正则表达式扫描并移除元字符,防止用户篡改命令。Shell使用的元字符列表如下:
& ; ` ‘ \ “ | * ? ~ < > ^ () [] {} $ \n \r
- 筛选用户输入 :使用正则表达式和绑定运算符(=~),将用户输入精简为所需的数据,确保输入有效后再发送到命令行。
在Perl中,还可以不通过Shell调用外部程序,避免元字符带来的不良影响。例如,不使用:
sy
超级会员免费看
订阅专栏 解锁全文
11万+

被折叠的 条评论
为什么被折叠?



