molily: taschenrechner

Beitrag lesen

Merke: "eval() is evil!" Warum? Du lässt den Browser ungeprüft irgendeinen Code ausführen, den irgendwer in irgendein Eingabeelement eingetippt hat. Gib dort doch probeweise mal sowas wie "while (true) { document.write 'Ätsch!'; }" ein ... viel Spaß!

???
Du erweckst hier den Anschein, dass das irgendwie eine Sicherheitslücke wäre. Den Code hat nicht »irgendwer« in »irgendein« Eingabeelement eingetippt, sondern höchstens der Benutzer des Rechners selbst. Klar, jeder Benutzer kann in seinem Browser von ihm eingegebenen JavaScript-Code ausführen. Ja, und? Das ist kein Problem. Dazu brauche ich kein Formular-Element, sondern tippe den Code einfach in die entsprechende JavaScript-Konsole oder mit »javascript:« in die Adresszeile. Wenn ich da dann mutwillig eine Endlosschleife reintippe, ist es mein Problem.

Dass ein JS-Taschenrechner nun als JS-Konsole funktioniert, ist natürlich nicht so prickelnd: Die Wahrscheinlichkeit, dass der Benutzer etwas (durchaus einen math. Term) eingibt und das nicht so interpretiert wird, wie er sich das dachte, ist natürlich hoch. Aber sicherheitskritisch ist das nicht, dazu müsste der Benutzer schon absichtlich beknackten JS-Code eingeben und ausführen. Dann ist er selbst schuld.

Mathias