JavaScript AJAX sicher?

5 Antworten

Vom Fragesteller als hilfreich ausgezeichnet
Die Frage ist ob AJAX genauso (un)sicher ist wie PHP.

Ich verstehe den Vergleich überhaupt nicht. PHP ist eine serverseitige Programmiersprache. Wie sicher das Script ist, hängt von dir ab. AJAX dagegen ist eine Technik, um Content asynchron nachzuladen, ohne die komplette Seite aktualisieren zu müssen. Es ist an sich keine neue Technologie, sondern nur ein neuer Ansatz, bereits vorhandene Technologien anders zu nutzen. Letztendlich steckt immer eine HTTP(S)-Verbindung dahinter. AJAX verändert nichts an der Sicherheit ebendieser.

Soweit ich das verstanden habe, via AJAX, gibt der User beim Formular ja loginname und pw an, dann übergebe ich die Daten an das JavaScript und er gibt dann via POST die Daten weiter an meine PHP Datei und via Echo kann ich auf das js antworten und dann entscheiden was damit gemacht wird.

Genau, wobei AJAX die Technik ist, die Daten zwischen JS und PHP austauschen zu können. Hier siehst du es: Es wird ebenfalls PHP verwendet, ob mit oder ohne AJAX. Aus diesem Grund macht dein Vergleich keinen Sinn.

kann der Nutzer das JavaScript einsehen, sowie den Quellcode?

Das kann er immer, sonst könnte der Browser die Seite gar nicht darstellen, wenn ihm der Code nicht bekannt ist. Was ist nun daran schlimm, wenn man den Code einsehen kann?

Weder PHP, noch AJAX ist unsicher. Der Code ist immer so sicher wie der Entwickler selbst programmiert hat.

Natürlich musst du auch gewisse Vorkehrungen treffen, damit deine Application sicher wird, dazu musst du dich unteranderem gegen folgende Sachen schützen:

  • XSS
  • CSRF
  • SQL-Injection

Zusätzlich solltest du auch HTTPS für deine Seite verwenden und folgende Header wie:

  • Strict-Transport-Security
  • Content-Security-Policy
  • X-XSS-Protection
  • X-Frame-Options
  • X-Content-Type-Options

Jetzt wollte ich mich ein bisschen weiterbilden und kam auf die Idee eine Single Page zu machen.

Für eine Single Page Application (SPA) würde ich dir Anguar 4 oder ReactJS empfehlen. Hier verwendet man nicht nicht wirklich AJAX sondern RxJS, was meiner Meinung nach viel strukturierter ist. Bei ReactJS bin ich mir aber nicht sicher, ob hier auch RxJS verwendet wird.

Meine Frage: Wie sicher ist das? & kann der Nutzer das JavaScript einsehen, sowie den Quellcode?

Wenn du das ganze über z. B. jQuery oder pures JavaScript löst, kann man auch die Abläufe nachvollziehen. 

In z. B. Angular und ReactJS wird dein gesamtes Projekt compiliert und hier wird Reverse Engineering um einiges erschwert. 

Dein HTML, CSS und JavaScript ist für den Nutzer immer einsehbar, dagegen kannst du nichts unternehmen. Aber das sollte dir keine Sorgen machen, da sich die eigentliche Geschäftslogik immer im Back-End abspielt, und nicht im Front-End.

Hi, andere sicheheitsrelevante Sachen wurden ja hier schon erläutert.

Gernerell solltest du darauf achten, dass die Daten immer an eine https:// Adresse gesendet werden. Diese werden dann Clientseitig verschlüsselt und an den Server übertragen.

Grüße

das kann der Nutzer immer, auch bei Webseiten von google. du musst dir wegen sicherheit nur gedanken um xss, cross site scripting machen. ansonsten sehe ich keine sicherheitslücken

Das wann man mit Ajax und PHP machen kann, ist z. b. bilder auf der seite zu laden, die vorher nicht da waren und dabei nimmt man die daten vom webserver. 

FiNaRy 
Fragesteller
 14.11.2017, 06:03

Soweit ich mich erinnern kann muss ich nur Zeichen sperren um sich gegen xss zu schützen. sowas wie <>{[]}=

0
Solix99  14.11.2017, 06:06
@FiNaRy

Ich weiß nicht inwiefern das möglich ist, aber es gibt auch sowas wie SQL Injection. Habe mich damit noch nicht auseinander gesetzt. 

0

Was du wohl meinst ist ein klassischer, vom Browser gehandelter, aufgrund eines Klicks auf einen Senden-Button in einem Formular mit der POST-Methode getriggerter Request versus einen AJAX-Request.

Die Antwort hängt dann von der Sichtweise ab.

Ich würde sagen: An sich ist das eine nicht sicherer als das andere.

In der Praxis musst du halt schauen, dass du das Nötige für die Sicherheit tust. Das musst du aber bei beiden Techniken. Z. B. einen CSRF-Token mit übertragen.

Woher ich das weiß:Berufserfahrung – Studium + Berufserfahrung