2010-11-21 19 views

回答

10

它啓用了「污染模式」,一種數據流分析,可防止使用不可信輸入的潛在不安全操作。

例如,它似乎合理的存儲與

open my $fh, ">", "/var/myservice/$username" 
    or die "..."; 
print $fh ...; 

爲了說明這是非常有用的一個新用戶的詳細信息,如果有什麼惡意用戶給出的../../../etc/passwd用戶名和您的服務爲根運行?

如果$username的值來自命令行或作爲CGI表單參數,則污染模式將不允許上述代碼運行。

perlsec文檔顯示如何「不可信」地輸入不可信的輸入以確保它們安全。

0

如果污染模式打開,則必須使用某個函數來清除數據,例如應用正則表達式來刪除不安全的字符。