HuHu schreef op donderdag 19 maart 2015 @ 22:54:
Er zijn ook upload modules voor TinyMCE (om bijvoorbeeld plaatjes toe te voegen). Als je daar een brakke module voor hebt, die ook broncode toelaat... dan ben je de Sjaak.
[...]
eval = evil, omdat 90% van het gebruik ervan onjuist is en gevaarlijk. Ik heb mensen variabele variabelenamen zien maken met eval, omdat ze eigenlijk op zoek waren naar een associatieve array maar dat niet kenden.
Ik denk dat gemiddeld genomen eval() onjuist wordt gebruikt en voornamelijk door mensen met beperkte programmeerkennis. Ze zoeken iets specifieks (of eigenlijk vrij algemeens, maar door kennisgebrek weten ze het niet) en gebruiken eval() om te doen wat ze willen. Niet omdat het goed is, maar "omdat het werkt".
Dat sluit het valide gebruik van eval() niet uit en ik geloof best dat jouw situatie daar onder valt. Maar als algemene richtlijn kun je prima zeggen dat mensen eval() moeten vermijden (tenzij ze exact weten waarom niet).
Ik heb mensen $_GET en $_POST variabelen als sessie naam zien gebruiken
code:
1
2
| //zoals dit
$_SESSION[$_GET['foo']] = $_GET['bar']; |
Sessions = evil, of niet omdat het maar misschien ~25% achterlijk wordt gebruikt?
Dus ja, ik snap sowieso gewoon niet hoe iets simpels als evil bestempelt kan worden, terwijl het per definitie domweg -niet- evil is. Ja woooeiii het voert code uit, net zoals als alle andere regels. Per definitie is ALLES wat niet van jezelf komt potentieel gevaarlijk. Of dit nu door een eval heen gaat, in je sessie komt of in je non prepared statement bouwt, maakt dan geen (pardon my french) fuck uit.
Het enige waarom mensen beginnen te zeiken (want immers ervaar ik het gewoon zo) is omdat dit relatief simpel te begrijpen is en nooit andere 'flaws' recht voor hun knoepert kunnen zien. Lekker simpel om zo'n gevaren label erbij te zetten, maar sure.. bij elke andere functionaliteit van een taal doen we alsof het allemaal niet gevaarlijk is.
PHP rand is niet -echt- rand.
Sessions zijn niet veilig.
MySQL API is niet veilig.
php.ini is een broeinest van potentiële veiligheids issues.
Vrijwel elke site die ik 'check' bevat meerdere XSS vulns.
Maar ja, eval is evil. Het heeft totaal geen logica, maar op de één of andere manier is dit het enige wat men roept of überhaupt kan bedenken of iets dergelijks. Volgens mij is dat meer het probleem, dan dat eval zo evil is.