當在Perl中隱藏變量時,是否所有的未知事項都必須在本地完成到Perl(.pl)文件,還是可以通過Perl模塊(.pm)傳遞給隱藏?通過Perl模塊子程序傳遞Perl Untaint變量
例如,可以解除污染看起來是這樣的:
$string =~ /\A(.*)\z/s
(顯然這是一個不好的做法,毯子匹配任何輸入,這只是顯示一個例子)
我想知道是否可以通過.pm傳遞它,因爲我想在多個.pl文件中執行相同的正則表達式。
use myModule;
$string = myModule::myUntaint($string);
其中 「myUntaint」 是包含我正則表達式的名.pm 「MyModule的」 內的子程序。
它永遠不應該看起來像'$ string =〜/ \ A(。*)\ z/s'或myModule :: myUntaint $字符串);'。它應該驗證值。 – ikegami
你試過這個嗎?我認爲,因爲'CGI :: Untaint'或'Untaint'存在,它的工作原理。然而,出於顯而易見的原因 - 你不應該只是隱瞞一點,因爲整個問題是確保任何潛在的危險輸入不再存在。 – Sobrique
感謝您的輸入。我用'$ string =〜/ \ A(。*)\ z/s'作爲一個簡單的例子。這顯然是一個非常可怕的做法,可以用來進行比賽 - 任何事情都可以在無人問題時進行。 myModule .pm中的myUntaint()子例程將包含正確的正則表達式來驗證值。 – SpenserAD