Perl 编程中的数据污染检查与处理
1. 警告而非致命错误
在 Perl 编程里,使用 -T 开关时,数据污染违规会被当作致命错误处理,这通常是有益的。不过,要是拿到一个未仔细考虑数据污染问题的程序,还是可以运行它。Perl 提供了一种更温和的数据污染检查方式。
- -t 开关:它类似于普通的数据污染检查,但遇到问题时仅发出警告。这主要作为开发特性使用,能在将程序提供给公众测试数据前检查问题。例如:
% perl -t tainted_args_no_path.pl Amelia
Insecure dependency in system while running with -t switch at
tainted_args_no_path.pl line 5.
Args are -> Amelia
程序虽报错,但会继续运行。
- -U 开关:它能让 Perl 执行原本不安全的操作,实际上是关闭数据污染检查。比如,给一个尚未保证数据安全的程序添加 -T 开关,但想在修复污染问题期间让程序运行,就可使用 -U 开关。不过,命令行中仍需使用 -T 开关,否则会出现 “too late” 信息,程序无法运行。例如:
% perl -TU tainted_args_no_path.pl Amelia
Args are ->
超级会员免费看
订阅专栏 解锁全文
967

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



