AJAX-Sicherheit

Asynchrones Javascript und XML (AJAX) ist eine der neuesten Techniken zur Entwicklung von Webanwendungen, um eine umfassende Benutzererfahrung zu erzielen. Da es sich um eine neue Technologie handelt, müssen noch viele Sicherheitsprobleme behoben werden. Nachfolgend sind die wenigen Sicherheitsprobleme in AJAX aufgeführt.

  • Die Angriffsfläche ist größer, da mehr Eingänge gesichert werden müssen.

  • Außerdem werden die internen Funktionen der Anwendungen verfügbar gemacht.

  • Fehler beim Schutz von Authentifizierungsinformationen und -sitzungen.

  • Es gibt eine sehr enge Grenze zwischen clientseitig und serverseitig, daher gibt es Möglichkeiten, Sicherheitsfehler zu begehen.

Beispiel

Hier ist ein Beispiel für AJAX Security -

Im Jahr 2006 infizierte ein Wurm den Yahoo Mail-Dienst mit XSS und AJAX, der eine Sicherheitsanfälligkeit bei der Behandlung von Onload-Ereignissen bei Yahoo Mail ausnutzte. Beim Öffnen einer infizierten E-Mail führte der Wurm sein JavaScript aus und sendete eine Kopie an alle Yahoo-Kontakte des infizierten Benutzers.

Hände an

Step 1- Wir müssen versuchen, mit XML-Injection mehr Belohnungen zu Ihrem zulässigen Belohnungssatz hinzuzufügen. Unten ist der Schnappschuss des Szenarios.

Step 2- Stellen Sie sicher, dass wir sowohl die Anforderung als auch die Antwort mit Burp Suite abfangen. Einstellungen wie unten gezeigt.

Step 3- Geben Sie die im Szenario angegebene Kontonummer ein. Wir können eine Liste aller Belohnungen erhalten, für die wir berechtigt sind. Wir haben Anspruch auf 3 von 5 Belohnungen.

Step 4- Lassen Sie uns nun auf "Senden" klicken und sehen, was wir in der Antwort-XML erhalten. Wie unten gezeigt, werden die drei Prämien, für die wir berechtigt sind, als XML an uns übergeben.

Step 5 - Lassen Sie uns nun diese XMLs bearbeiten und auch die beiden anderen Belohnungen hinzufügen.

Step 6- Jetzt werden dem Benutzer alle Belohnungen angezeigt, die er auswählen kann. Wählen Sie die von uns hinzugefügten aus und klicken Sie auf "Senden".

Step 7 - Die folgende Meldung lautet: "* Herzlichen Glückwunsch. Sie haben diese Lektion erfolgreich abgeschlossen."

Vorbeugende Mechanismen

Kundenseite -

  • Verwenden Sie .innerText anstelle von .innerHtml.
  • Verwenden Sie eval nicht.
  • Verlassen Sie sich aus Sicherheitsgründen nicht auf die Client-Logik.
  • Schreiben Sie keinen Serialisierungscode.
  • Vermeiden Sie es, XML dynamisch zu erstellen.
  • Übermitteln Sie niemals Geheimnisse an den Kunden.
  • Führen Sie keine Verschlüsselung im clientseitigen Code durch.
  • Führen Sie keine sicherheitsrelevante Logik auf der Clientseite durch.

Serverseite -

  • Verwenden Sie den CSRF-Schutz.
  • Schreiben Sie keinen Serialisierungscode.
  • Dienste können von Benutzern direkt aufgerufen werden.
  • Vermeiden Sie es, XML von Hand zu erstellen. Verwenden Sie das Framework.
  • Vermeiden Sie es, JSON von Hand zu erstellen, und verwenden Sie ein vorhandenes Framework.