2014-09-19 58 views
2

我最近使用Perlbrew而不是系統Perl將應用程序轉換爲使用其自己的Perl版本,並且我是從來沒有再次使用系統Perl !使用TAINT作爲應用程序專用Perl的默認值安裝Perl

我即將啓動一個乾淨的應用程序,其中所有腳本都將在打開TAINT的情況下運行。就像我之前的應用程序一樣,新應用程序的庫會在TAINT未開啓的情況下拒絕運行。

我的問題是,我可以安裝或修改我自己的專用Perl,使其總是默認情況下運行在TAINT模式?

編輯:對不起 - 我應該也提到我想在我的腳本中使用0123bshebang成語,因此定義shell別名不是解決方案。

+0

'別名perl =「perl -T」'? – ThisSuitIsBlackNot 2014-09-19 21:10:45

+1

並非萬無一失,但可能會將'export PERL5OPT = -T'添加到您的'.bash_rc'(或等價物)。請參閱[此問題](http://stackoverflow.com/q/2528959/176646)。 – ThisSuitIsBlackNot 2014-09-19 21:54:02

回答

2

雖然看起來比較簡單,但修改perl使其始終在tainting打開的情況下運行(未經測試:在perl.c中的/ case旁邊的命令行切換處理之後添加TAINTING_set(TRUE);),但沒有支持的方式它。設置PERL5OPT環境變量與其獲取的值相近。請注意,「-T」必須位於變量值的第一位,並且您嘗試設置的其他開關將被忽略。

雖然這一切似乎過分偏執。對於可能獲得外部輸入的腳本,在#! - 行上放置「-T」是不夠的嗎?

+0

僅僅因爲你偏執狂,並不意味着他們沒有出去找你。由於這是爲一個應用程序安裝Perl的服務,並且該應用程序絕對需要TAINT,所以如果可能的話,將Perl看作是合理的東西。 – KillerRabbit 2014-09-23 22:02:28

相關問題