Javascript auf dem Server
-
auf der schachtel schrieb:
Google: Javascript-Injection Im Moment kann man "nur" Clientseitig HTML Seiten "hacken", aber sobald es auf dem Server läuft geht viel mehr.
Quasi jede Scriptsprache hat ein eval()
-
Nur weil die Sprache bei Client und Server die gleiche ist heißt das doch noch lange nicht, dass deswegen plötzlich andere/mehr Sicherheitslücken auf dem Server entstehen als bei einer anderen serverseitigen Sprache.
So eval()-Hacks gibts bei thedailywtf.com regelmäßig wo per ajax/js irgendwas an ein php-Skript geschickt wird welches das ganze mit eval() ausführt.
-
lolz schrieb:
Nur weil die Sprache bei Client und Server die gleiche ist heißt das doch noch lange nicht, dass deswegen plötzlich andere/mehr Sicherheitslücken auf dem Server entstehen als bei einer anderen serverseitigen Sprache.
So eval()-Hacks gibts bei thedailywtf.com regelmäßig wo per ajax/js irgendwas an ein php-Skript geschickt wird welches das ganze mit eval() ausführt.
Man könnte aber mehr anstellen, wenn man mit js auf die Server DB zugreifen könnte. Die Möglichkeit fremden Code auf dem Server auszuühren hat man bei ner normalen Sprache halt nicht, außer SQL Injection.
-
auf der schachtel schrieb:
lolz schrieb:
Nur weil die Sprache bei Client und Server die gleiche ist heißt das doch noch lange nicht, dass deswegen plötzlich andere/mehr Sicherheitslücken auf dem Server entstehen als bei einer anderen serverseitigen Sprache.
So eval()-Hacks gibts bei thedailywtf.com regelmäßig wo per ajax/js irgendwas an ein php-Skript geschickt wird welches das ganze mit eval() ausführt.
Man könnte aber mehr anstellen, wenn man mit js auf die Server DB zugreifen könnte. Die Möglichkeit fremden Code auf dem Server auszuühren hat man bei ner normalen Sprache halt nicht, außer SQL Injection.
Doch hat man. Könnten wir vielleicht über richtige Vor- und Nachteile diskutieren?
-
Mr. N schrieb:
auf der schachtel schrieb:
lolz schrieb:
Nur weil die Sprache bei Client und Server die gleiche ist heißt das doch noch lange nicht, dass deswegen plötzlich andere/mehr Sicherheitslücken auf dem Server entstehen als bei einer anderen serverseitigen Sprache.
So eval()-Hacks gibts bei thedailywtf.com regelmäßig wo per ajax/js irgendwas an ein php-Skript geschickt wird welches das ganze mit eval() ausführt.
Man könnte aber mehr anstellen, wenn man mit js auf die Server DB zugreifen könnte. Die Möglichkeit fremden Code auf dem Server auszuühren hat man bei ner normalen Sprache halt nicht, außer SQL Injection.
Doch hat man.
Ja, wenn C/C++ Programmierer richtige Fehler machen und über den Speicher raus schreiben lassen oder Formatstrings falsch einsetzen. Da muss man aber schon richtig was drauf haben um einen Server so zu hacken. Bei Javascript ist sowas ein Sprachfeature, damit jeder der nur ein bisschen js kann, seinen Code auf den Server bringen kann.
Könnten wir vielleicht über richtige Vor- und Nachteile diskutieren?
Javascript Injection, Keine Vererbung, keine Typsicherheit, noch langsamer als Java, viele Syntaxfehler können erst zur Laufzeit erkannt werden.
Was waren den die richtigen Vorteile?
-
auf der schachtel schrieb:
Ja, wenn C/C++ Programmierer richtige Fehler machen und über den Speicher raus schreiben lassen oder Formatstrings falsch einsetzen. Da muss man aber schon richtig was drauf haben um einen Server so zu hacken. Bei Javascript ist sowas ein Sprachfeature, damit jeder der nur ein bisschen js kann, seinen Code auf den Server bringen kann.
Jede Scriptsprache hat ein eval(). Willst du jetzt behaupten PHP, Python, Perl, Ruby,... sind ungeeignet?
Javascript Injection, Keine Vererbung, keine Typsicherheit, noch langsamer als Java, viele Syntaxfehler können erst zur Laufzeit erkannt werden.
Keine Vererbung ist kein Grund. Der Rest ist bei Jeder Scriptsprache so.
-
Weil andere Sprachen die gleichen Nachteile haben zählt es nicht als Nachteil?
Komische Anschauung.
Was ist denn nun an Javascript gut? Warum nicht ne richtige Sprache für Serverprogrammierung entwerfen (z.B. mit SQL als Sprachfeature, um SQL Injection zu verhindern), anstatt Javascript.
-
Jede Sprache hat Probleme wenn man den Userdaten blind vertraut. Es ist einfach lächerlich zu sagen eine Sprache ist schlecht weil es ein eval() bietet. Bedenke dass man in Java und .NET remoten Code laden und ausführen kann.
Die Frage ist: welche Nachteile hat JavaScript im Vergleich zu den bestehenden Lösungen - und da gibt es von der Sprache her einfach keinen Nachteil. Denn es ist genauso eine Sprache wie PHP, Python, Ruby, Perl,...
SQL Injections sind auch soetwas was ich nie verstanden habe. Man braucht nur ein bisschen Verstand haben und es kommt nie zu einer SQL Injection. Wenn nun die Library etwas hilft, ist die Sache erledigt. Da brauche ich nichts in die Sprache einbauen...
-
Shade Of Mine schrieb:
SQL Injections sind auch soetwas was ich nie verstanden habe. Man braucht nur ein bisschen Verstand haben [...]
Du hast die Frage doch schon selbst beantwortet.
@auf der schachtel:
Javascript ist eine richtige Sprache und IMHO auch eine recht interessante. Außerdem ist es halt die gleiche, die man auch clientseitig verwenden muss, man muss sich also mit weniger Sprachen rumschlagen.
-
Bedenke dass man in Java und .NET remoten Code laden und ausführen kann.
Bedenke aber auch, dass in Java und .NET Security ein integraler Bestandteil der Laufzeitumgebung ist. Das kann man nun wirklich nicht mit einem eval() vergleichen.
-
Was waren jetzt nochmal die Vorteile von Javascript?
-
auf der schachtel schrieb:
Was waren jetzt nochmal die Vorteile von Javascript?
Lern lesen.
-
hahahahaha schrieb:
auf der schachtel schrieb:
Was waren jetzt nochmal die Vorteile von Javascript?
Lern lesen.
Das?
Aber im Prinzip wäre JS eine Super Serverseitige Sprache - vorallem weil es dann die Möglichkeit bietet dynamisch zu entscheiden ob ich den Code jetzt auf dem Server ausführen will oder auf dem Client.
Was ist da jetzt toll?
1. Javascript ist eigentlich ne ziemlich nette Sprache.
2. Man verwendet Javascript schon im Browser, also hat man mehr oder weniger nur eine Skriptsprache, die man nutzen muss.
Was ist da jetzt toll?
Richtige Vorteile???
-
auf der schachtel schrieb:
Mr. N schrieb:
1. Javascript ist eigentlich ne ziemlich nette Sprache.
Niemand zwingt dich, Javascript zu nutzen. Ich finde die Sprache reizvoll. Closures und Prototyp-basierte OO wären da zwei Stichworte, die mir spontan einfallen würden.
-