0

Perl で変数を untainting する場合、すべての untainting は Perl (.pl) ファイルに対してローカルで実行する必要がありますか、それとも Perl Module (.pm) を介して untaint に渡すことができますか?

たとえば、汚染除去は次のようになります。

$string =~ /\A(.*)\z/s

(明らかに、入力をブランケットマッチにするのは悪い習慣です。これは例を示しているだけです)

複数の .pl ファイルで同じ正規表現に対して実行したいので、.pm を介して渡すことができるのではないかと思っています。

use myModule;

$string = myModule::myUntaint($string);

「myUntaint」は、正規表現を含む .pm 「myModule」内のサブルーチンです。

4

1 に答える 1

0

はい、汚染されたパラメーターを受け取り、そこから派生した汚染されていない式を返すモジュールにサブルーチンを含めることができます。

/\A(.*)\z/sしかし、untainting のような一般的な match-anything 式を使用するべきではありません。これは、値を使用する前に期待どおりに見えるようにするという汚染の目的を無効にします。(しかし、それは汚染除去を行うコードがどこにあるかとは何の関係もありません。)

于 2015-09-16T19:30:07.003 に答える