Moin,
ich habe meine Seite mit PHP/Javascript/AJAX programmiert: Für meine AJAX-Funktionen habe ich eine zweite PHP-Seite im Hintergrund, die alle Ergebnisse per JAVA-Script-Code an die für den User sichtbare Seite zurückgibt. Diese Seite führt den Code dann per eval() aus.
hört sich irgendwie umständlich an.
Ist das ein Sicherheitsrisiko? EIgentlich kann ja nur mein eigener JS-Code und kein externer Code ausgeführt werden. Ich poste hier keinen Quellotext, da es sich um eine grundsätzliche Frage der Programmiertechnik handelt...
Ja, genau. Die grundsätzliche Frage ist: Warum tauschen die zwei Software-Komponenten Code untereinander aus, und nicht einfach nur Daten? Ich kann dein Szenario nicht konkret einschätzen, weil du es nicht verraten willt. Okay. Aber normalerweise würde ich den Javascript-Code, der da ausgeführt werden soll, direkt als Funktion(en) im clientseitigen JS-Modul vorhalten, die sich nur noch die jeweils aktuell benötigten Daten vom Server abruft, z.B. als JSON.
Das Sicherheitsproblem, das du ansprichst, sehe ich jedoch in deinem Fall auch nicht, solange du genau unter Kontrolle hast, welcher Code da ausgetauscht und ausgeführt wird. Solange also niemand deinem Server fremde Daten unterschieben kann ... aber dann hättest du noch ganz andere Probleme als ausgerechnet eval(). ;-)
So long,
Martin