首页 相关文章 Linux 和 Unix 安全编程:环境变量

Linux 和 Unix 安全编程:环境变量


  环境变量
   缺省情况下,环境变量从进程的父进程继续而来。但是,在程序执行另一个程序时,调用程序可以把环境变量设置为任意值。这对setuid/setgid程序而言很危险,因为其入侵者可以完全控制它们得到的环境变量。由于环境变量一般是继续来的,同样可以传递使用;安全程序可能调用某些其它程序,在没有非凡措施的情况下,这会把有潜在危险的环境变量值传递给调用的程序。
  
   有些环境变量是危险的
   有些环境变量是危险的,因为很多库和程序被环境变量以某些隐含、模糊或未公开的方式所控制。例如,sh和bash shell使用IFS变量来决定哪个字符被用来分隔命令行参数。由于shell是被若干底层调用(如C中的system(3)和popen(3),或Perl中的back-tick算符)执行的,把IFS设置为不平常的值就会搅乱那些看起来安全的调用。该行为在bash和sh里有说明,但不引人注目;许多长时间的用户知道IFS,只不过是因为了解IFS可用来破坏安全性,而不是因为有意经常使用的缘故。更糟的是,不是所有的环境变量都有文档说明,而且即使有,其它的程序也可以改变和增加危险的环境变量。所以唯一的真正解决方案(下文有描述)是只选择所需要的环...[ 查看全文 ]

2016-02-19 标签:

Linux 和 Unix 安全编程:环境变量的相关文章

手机页面
收藏网站 回到头部