Wie setze ich den Taint-Modus in einem Perl-Skript mit einem '#!/Usr/bin/env perl'- Shebang ein?

StackOverflow https://stackoverflow.com/questions/2528959

  •  22-09-2019
  •  | 
  •  

Frage

Wie setze ich den Makelmodus in einem Perl -Skript mit a ein?

#!/usr/bin/env perl

Shebang?

War es hilfreich?

Lösung

Sie können die Perl5opt -Umgebungsvariable in der Shebang -Linie übergeben:

#!/usr/bin/env PERL5OPT=-T perl

Das scheint mir alles ziemlich rückwärts.

Eine andere Option besteht darin, das Skript im Taint-Modus erneut auszusetzen, wenn Sie feststellen, dass es sich nicht befindet:

#!/usr/bin/env perl

warn 'Taint mode is '.(${^TAINT} ? 'on' : 'off'); # For debugging

exec($^X,'-T',$0,@ARGV) unless ${^TAINT};

# do stuff under taint mode here

Offensichtlich ist dies ein wichtiger Start -up -Leistungsschlag.

Andere Tipps

Da der Taint -Modus nur über die aktiviert werden kann -T Flagge und env Akzeptiert keine Flags in einer Shebang -Linie, die beste Option ist es, das Programm durch perl -T script.pl anstatt das Skript direkt auszuführen.

Wenn Sie unbedingt den Merkmalsmodus im Shebang durchsetzen müssen, könnten Sie eine machen taintperl Skript irgendwo in Ihrem Weg (zB/usr/local/bin) mit dem folgenden Inhalt:

#!/bin/sh
/usr/bin/env perl -T

Dann in Ihrem Perl -Skript haben

#!/usr/bin/env taintperl
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top