ziy*_*iya 27
不止于此:)它会在您成为一个安全问题之前解决它.它当然不是安全银弹......我们曾经在外部暴露的任何脚本(即任何mod_perl应用程序)中使用它(几年前我参与Perl项目),我们发现它非常有用,把它作为我们的政策.它做了一些检查,它很方便..(任何事情使事情自动化)
Perl安全性 - perlsec强烈建议:
强烈建议使用此标志[污点模式]用于服务器程序以及代表其他人运行的任何程序,例如CGI脚本.一旦启用了污点模式,它就会启动脚本的其余部分.
Gre*_*con 16
明确地!
$ echo '`rm -rf /`' | perl -Te 'eval while <>' Insecure dependency in eval while running with -T switch at -e line 1, <> line 1.
bri*_*foy 13
Mastering Perl的"安全编程技术"章节几乎完全用于污点检查以及如何使用它.
许多人会告诉你它会保护你,但他们巧妙地说谎.它是一个开发人员工具,可以帮助您在代码中找到一些(只有一些)需要注意的地方.它不会解决您的所有安全问题.
我认为在开发每个人都熟悉的新代码时,污点模式最有效.
如果你的其他人的代码编写得很糟糕,并且你在污点模式下运行它 - perl会死掉而不是执行污点规则是"不安全"的操作.
在污点模式perl中,一些孔被修补但不是全部.系统("$ unfiltered_user_input")将会死亡,但Perl仍然可以将$ unfiltered_user_input数据写入具有固定名称的文件(因为打印的污染数据被认为是'安全'),然后使用system()执行该文件.但没有什么可以检查一切.
在遗留应用上使用它有一个权衡.当Perl发现对受污染数据的不安全操作时,它将会死亡 - 这意味着有人必须进入并决定取消数据的意义,需要什么正则表达式,然后应用程序再次可靠.
有些人宁愿不安全,可靠,低成本(目前) - 安全,破碎,需要找到开发人员.从长远来看并不是那么好......但这并不罕见.