jo ich will nur wisse wo ich die Hintergrund, Informationen einholen kann. z.B. interessiert mich brennend die Funktion eval()
. Zu diesem Beispiel Ich brauche schon Fachwissen um zu verstehen wie's funktioniert. Deswegen wende ich mich an euch ...
perldoc -f eval Beachte, dass eval in Perl auf 2 verschiedene Arten und ganz unterschiedlich verwendet wird, am Wenigsten jedoch um Code in den Hauptspeicher zu bringen bzw. auszuführen. Dennoch mein ganz persönliches und gleichermaßen sehr praktisches Beispiel hierzu:
D:\>.pl RPC
Remote CMD auf dem Host
--attribute, -a: Zeigt Attribut+Value einer Entity in Konfiguration
--base, -ba: Name der Datenbank für Option --sql
--binary, -bi: Erzeuge die Konfiguration als Binary
--cmd, -c: Freies Kommando im aktuellen Verzeichnis
--dump, -d: Dump Response Object
--entity, -e: Zeigt Attribute einer Entity in Konfiguration
--files, -f: Lokale Dateien für Upload
--head, -he: HEAD Request auf URL
--host, -ho: rolfrost.de oder rolfrost
--irc, -i: Chatserver starten
--request, -r: HTTP Request auf den angegebenen URL oder auf alle URLs
--sql, -s: SQL Anweisung, erfordert --base
--urls, -u: Listet URLs in Konfiguration
D:\>.pl RPC -host rolfrost.de -base myweb -sql select version()
$VAR1 = [
{
'version()' => '1.2.3'
}
];
In Fakt bringt der HTTP-Request zum Server:
- den Namen der auszuführenden Methode,
- Argumente für diese Methode,
- den Code als String für diese Methode.
eval()
bringt (3) als Code in den Hauptspeicher. Dassselbe könntest Du erreichen, indem (3) als Datei auf die Platte geschrieben und mit require eingebunden wird was auch mit temp. Dateien funktioniert.
Natürlich bringt das auch ein paar Sicherheitsrelevante Fragen mit sich.
MfG
--
Wenn Jemand sagt, spring ins Wasser, frag wenigstens warum.