37、安全编程与自定义错误文档创建指南

安全编程与自定义错误文档创建指南

安全编程

在编写用于Web的CGI程序时,要时刻牢记安全性,因为这些程序可能会被数百万人访问,其中不乏心怀不轨之人。下面介绍一些确保脚本安全的编程实践。

不通过Shell运行Shell命令

在CGI脚本中使用Shell命令存在风险,特别是在命令中使用用户输入时。风险源于Shell的命令行解析器,它会将一些字符解释为对Shell本身的指令,这些字符被称为元字符。例如:

ls -al | grep “passwd”; cat `find . -name “thisfile”`

其中,管道符(|)、分号和反引号(`)都是元字符。

为避免这些风险,可以采用以下方法:
- 去除元字符 :使用正则表达式扫描并移除元字符,防止用户篡改命令。Shell使用的元字符列表如下:

& ; ` ‘ \ “ | * ? ~ < > ^ () [] {} $ \n \r
  • 筛选用户输入 :使用正则表达式和绑定运算符(=~),将用户输入精简为所需的数据,确保输入有效后再发送到命令行。

在Perl中,还可以不通过Shell调用外部程序,避免元字符带来的不良影响。例如,不使用:

sy
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值