Avatar von MetaCircularEvaluator
  • MetaCircularEvaluator

mehr als 1000 Beiträge seit 20.03.2015

Re: Immer diese Scriptsprachen.

Daelach schrieb am 16.04.2018 19:22:

bloodstix schrieb am 16.04.2018 18:57:

doch es ändert nichts daran, dass das NICHT der Fehler der Sprache

Wenn dabei algorithmischer Unsinn passiert: Ja, Entwicklerfehler. Wenn diese Eingaben auf einmal ausführbarer Code sind: Designfehler der Sprache.

Ich wiederhole meine Frage aber gerne nochmal: wozu genau braucht man denn das Feature, daß beliebige Datenstrings ausführbarer Code sein können?

Und um das noch weiterzuschlagen: was glaubst Du eigentlich, wieso bei Javascript inzwischen mit Content Security Policy auf unsafe eval geschossen wird?

Und zu C, was denkst Du, wozu das NX-Bit auf CPU-Ebene eingeführt wurde? Vielleicht, weil die Ausrede "der Entwickler ist schuld!" keinen Deut an den Sicherheitslücken geändert hat?

Also ich verstehe schon Deine Kritik. Was aber ausgerechnet hier PHP spezifisch sein sollte, keine Ahnung. Man kann an PHP wirklich extrem viel kritisieren, aber ausgerechnet "eval"?

Noch dazu, "eval" ist weder etwas was strickt dynamischen Sprachen vorbehalten sein muss, noch macht es irgendeinen Unterschied, ob "eval" auf "Stings" (welches Encoding?), oder irgendwelchen anderen Bit-Folgen operiert. Im Prinzip ist ein Computer auch nur eine in Hardware gegossene "eval" Funktion! Die Möglichkeit Daten zu Code zu machen muss es auch immer geben, weil man sonst einen Computer gar nicht programmieren könnte. ;-) (Ja, man kann natürlich die direkte Verwendung von "eval" einschränken, und viele Layer an Sicherheitsmechanismen drumherum bauen, im Kern wird man sie aber nie los werden können, da nur so computerartige Dinge funktionieren).

Ein "Eval Feature" in einer Programmiersprache ist auch sehr interessant, weil es z.B. MSP (multi-stage programming) ermöglicht ("eval" kann ja auch eine Compilierung triggern).

MSP könnte zukünftig sehr wichtig für die Performance werden. (Ich stelle mir vor, dass zukünftig Programme in "Bauanleitungen" für dynamisch konfigurierbare Hardware compiliert werden, und dann erst diese optimal angepasste Hardware die eigentlichen Daten verarbeitet. In Zeiten in denen FPGAs und ähnliches in Server Einzug halten, ein durchaus realistisches Szenario).

Bewerten
- +
Anzeige