Thread Regex-Sicherheit mit /e (3 answers)
Opened by marky at 2011-10-22 08:35

pq
 2011-10-23 10:33
#153425 #153425
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
das /e ist einfach kein eval in dem sinne - der teil in der substitution ist regulärer code, der auch schon beim kompilieren gecheckt wird.
ist also ungefähr so wie der folgende code:
Code (perl): (dl )
1
2
3
4
if (m/.../) {
    # ersetze gematchten string durch
    encode_entities($GETPARA{$1});
}


/ee dagegen wendet tatsächlich ein eval auf die substititution an, weshalb $1 gefährlich werden könnte:

Code (perl): (dl )
1
2
3
4
if (m/.../) {
    # ersetze gematchten string durch
    eval "encode_entities($GETPARA{$1})";
}
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem

View full thread Regex-Sicherheit mit /e