2014-09-19 5 views
2

최근 Perl 시스템 대신 Perlbrew를 사용하여 Perl의 자체 버전을 사용하도록 응용 프로그램을 변환했으며 이 아님 Perl을 사용하여 다시 사용 !응용 프로그램의 전용 Perl의 기본값으로 Perl을 설치하십시오

모든 스크립트가 TAINT가 켜진 상태로 실행되는 깨끗한 슬레이트 응용 프로그램을 시작하려고합니다. 이전 앱처럼, 새 앱의 라이브러리는 TAINT를 켜지 않고도 실행을 거부합니다.

내 질문에 내 개인적인 Perl을 설치하거나 수정할 수 있습니까? 항상이 기본적으로 TAINT 모드로 실행됩니까?

EDIT : 죄송합니다 - 내 스크립트에서 #!/usr/bin/env perl shebang 관용구를 사용하고 싶습니다. 따라서 쉘 별칭을 정의하는 것이 해결책이되지 않습니다.

+0

'alias perl = "perl -T"'? – ThisSuitIsBlackNot

+1

절대 안전한 것은 아니지만 'export PERL5OPT = -T'를'.bash_rc' (또는 이와 동등한 것)에 추가하십시오. [이 질문] (http://stackoverflow.com/q/2528959/176646)을 참조하십시오. – ThisSuitIsBlackNot

답변

2

페일을 수정하여 항상 켜져있는 상태로 유지하도록하는 것이 합리적입니다 (테스트되지 않음 : perl.c의/case에 대한 명령 행 스위치 처리 직후에 TAINTING_set(TRUE); 추가). 지원 방법이 없습니다. 그것. PERL5OPT 환경 변수 설정은 가져 오는 것과 비슷합니다. 변수 값에서 "-T"가 먼저 와야하며, 거기에 설정하려고하는 다른 스위치는 무시됩니다.

이 모든 것이 지나치게 편집증적인 것처럼 보입니다. 입력 밖에있을 수있는 스크립트의 경우 "- T"를 #! 줄에 두는 것만으로 충분하지 않습니까?

+0

당신이 편집증 환자라고해서, 그들이 당신을 데리고 나가는 것을 의미하지는 않습니다. 이것은 단지 하나의 응용 프로그램을위한 서비스 용 Perl의 설치이고, 그 응용 프로그램은 확실히 TAINT를 필요로하기 때문에 가능한 경우 Perl로 굽는 것이 합당한 것처럼 보입니다. – KillerRabbit