Mad-Marty hat geschrieben:Das stimmt. Aber gerade bei konfigurationsdateien, wo man wahrscheinlich den optionswert auf ein objekt übertragen wird könnte man die *attr nutzen.
s
Zumindest lese ich das aus den ersten paar zeilen.
Ist ja auch egal, aber eval(cfg) ist so ziemlich das grösste sicherheitsloch was es gibt
Kommt drauf an, wann man eval benutzt. Wenn ein User in seine Konfigurationsdatei Befehle eintraegt, die dann, wenn er das zugehoerige Programm als eben dieser User startet, mit eval ausgewertet werden -- wo ist das Problem? Er kann dann mittels Konfigurationsdatei das machen, was er auch in einer Shell oder einem Dateimanager anrichten kann.
Hindert mich ja auch keiner dran, in meiner .bashrc
rm -r wichtiger_ordner einzutragen, oder in meiner .emacs
(delete-direcory wichtiger_ordner), oder in meiner .fvwm2rc
Exec exec rm -r wichtiger_ordner...
Problematisch wird's erst, wenn ein Programm mit priviligierten Rechten Eingaben von normalen Usern/Userprogrammen oder von der "Aussenwelt" entgegennimmt, die dann mit eval ausgewertet werden.... Oder wenn schlimme Befehle ausgewertet werden an Stellen, wo eigentlich nur eingeschraenkte, harmlose Eingaben gemacht werden und der User nicht mir rechnet.