Schrift
[thread]12374[/thread]

String interpretieren, Variable in Variable (Seite 2)

Leser: 1


<< |< 1 2 >| >> 18 Einträge, 2 Seiten
LanX-
 2008-08-19 16:36
#113709 #113709
User since
2008-07-15
1000 Artikel
BenutzerIn

user image
klar, aber am besten in einem Scope {},

NACHTRAG: aber es gibt gute Gründe warum etwas nicht strict ist...
esskar
 2008-08-19 17:00
#113711 #113711
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
würde es nicht mir eval machen;
somit hat ein angreifer die chance, jede variable im scope auszulesen.
LanX-
 2008-08-19 17:07
#113713 #113713
User since
2008-07-15
1000 Artikel
BenutzerIn

user image
esskar+2008-08-19 15:00:54--
somit hat ein angreifer die chance, jede variable im scope auszulesen.


Naja, im Scope kann man die sichtbaren Variablen ja ganz gut einschränken, wenn man davor Angst hat...

Aber für Kontrollperfektionisten ist die Hashlösung natürlich die beste.
esskar
 2008-08-19 19:25
#113714 #113714
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
ja; aber auch alles globale gehört dazu (z.b. das ganze %ENV)
Escape
 2008-08-19 20:20
#113716 #113716
User since
2008-07-24
312 Artikel
BenutzerIn
[default_avatar]
esskar+2008-08-19 17:25:51--
ja; aber auch alles globale gehört dazu (z.b. das ganze %ENV)

Läßt sich m.E. (weitgehenst) ausschalten durch einlesen von %ENV in einen scripteigenen Hash und anschließender Löschung der 'gefährlichen' %ENV keys.
Die Deutsche Rechtschreibung ist Freeware; Du darfst sie kostenlos nutzen – aber sie ist nicht Open Source, d.h. Du darfst sie nicht verändern und/oder in veränderter Form veröffentlichen.
LanX-
 2008-08-19 22:58
#113717 #113717
User since
2008-07-15
1000 Artikel
BenutzerIn

user image
esskar+2008-08-19 17:25:51--
ja; aber auch alles globale gehört dazu (z.b. das ganze %ENV)


mit diesen Symrefs kannste IMHO nur auf Scalare zugreifen

Code (perl): (dl )
1
2
3
4
 
@x=(1,2,3);
$y='x[0]';
print $$y;

läuft nicht!

mit einer eigenen package Anweisung im scope kannst du's auch zusätzlich einschränken.

und '$main::missbrauch' kann keiner eintragen weil nur \w+ gegriffen wird.

es dürfen dann nur keine wichtigen lexikalischen im drüberliegenden Scope liegen, zur Not ne eigene Datei/Modul nehmen

also gehen täts...
Dubu
 2008-08-29 19:20
#114094 #114094
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
LanX-+2008-08-19 20:58:29--
mit diesen Symrefs kannste IMHO nur auf Scalare zugreifen

Code (perl): (dl )
1
2
3
4
 
@x=(1,2,3);
$y='x[0]';
print $$y;

läuft nicht!


Code (perl): (dl )
1
2
3
@x=(1,2,3);
$y='x';
print $$y[2];     # Symrefs sind trotzdem BÖSE!
LanX-
 2008-08-29 20:53
#114097 #114097
User since
2008-07-15
1000 Artikel
BenutzerIn

user image
Dubu+2008-08-29 17:20:57--
Code (perl): (dl )
1
2
3
@x=(1,2,3);
$y='x';
print $$y[2];     # Symrefs sind trotzdem BÖSE!


der Exploit um so auf %ENV zuzugreifen ist recht kompliziert.
Meine Aussage: Evals sind böser als Symrefs!
<< |< 1 2 >| >> 18 Einträge, 2 Seiten



View all threads created 2008-08-19 12:59.