Formularübermittlung erzwingen Sicher

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Ich habe neulich an einer E-Commerce-Website eines Kunden gearbeitet, und ein wirklich beunruhigendes Problem trat auf. Im letzten Schritt des Checkouts, wenn man auf die allerletzte Schaltfläche klickt, um die Bestellung abzuschließen, zeigte der Browser eine Sicherheitswarnung an, die dem Benutzer mitteilte, dass die **Seite** sicher war, aber die übertragenen **Daten** nicht.

Nicht gerade etwas, das jemand beim Online-Shopping sehen möchte.

Ein wenig Nachforschung ergab, dass der Browser nicht paranoid war, er tat seine Arbeit. Die Seite selbst war ordnungsgemäß gesichert, aber die **action URL** des Formulars wurde an eine **unsichere URL** gesendet.

Ich bin mit diesem speziellen Warenkorb ziemlich vertraut, aber nach viel zu langer Recherche konnte ich keinen Code finden, um diese URL zu ändern. Ich habe eine Supportanfrage eingereicht, aber sie waren sehr wenig hilfreich und schoben die Schuld auf meine benutzerdefinierten Modifikationen am Warenkorb (unmöglich). Also... brauchte ich eine bessere Methode, um diese verflixte URL sicher zu machen.

Mit JavaScript erzwingen

Es ist natürlich nicht die perfekte Lösung, dies sollte wirklich auf Kernebene des Warenkorbs geschehen, aber manchmal braucht man einfach eine verdammte Lösung, um weiterzukommen. Hier ist, wie ich es mit jQuery JavaScript gemacht habe:

$(function(){

   var $form = $("form#specificForm");

   var newAction = $form.attr("action");
	
   newAction = newAction.replace(/http/,"https");
		
   $form.attr("action", newAction);
	
});

Einfache Sprache

  • Cache den Selektor, da wir ihn mehrmals verwenden werden
  • Setze eine Variable gleich der action URL
  • Ersetze den "http"-Teil des Strings durch "https"
  • Ändere das Attribut des Formulars

Erledigt den Trick...