2009-08-14 4 views
0

Ich diskutiere immer noch, ob ich das tun möchte oder nicht, aber was ich in Betracht ziehe, verhindert, dass Benutzer Hyperlinks in ein HTML-Formular in meiner App eingeben. Dadurch wird verhindert, dass Spam-Links für andere Anwendungen der App angezeigt werden, da die App auf vom Nutzer generierten Inhalten basiert.Verhindern, dass Hyperlinks in ein HTML-Formular eingegeben werden: clientseitige oder serverseitige Validierung?

Dies ist eine Rails-App, so dass ich einige Backend-Validierungen für das Modell durchführen konnte, nachdem das Formular vom Benutzer übergeben wurde.

Aber ich habe mich gefragt, ob es besser sein könnte, die Überprüfung in jQuery/JavaScript vor der Einreichung durchzuführen. Auf diese Weise kann der Benutzer sofort ohne Backend-Verarbeitung benachrichtigt werden.

Was wäre hier vorzuziehen - clientseitige oder serverseitige Validierung?

Antwort

6

Sie nur Kontrolle über die Daten haben, wenn es auf dem Server ankommt. Wenn Sie JavaScript verwenden, um Spam zu entfernen, schalten Spammer JavaScript aus.

Erstellen Sie eine serverseitige Lösung.

Sobald Sie das haben, denken Sie daran, die Arbeitsclient Seite zu duplizieren, um Dinge für Benutzer netter zu machen.

+0

In der Tat würde der Spammer das Javascript nicht sehen, da sie wahrscheinlich automatisierte POSTs senden würden – ideasasylum

1

Sie sollten beide verwenden, verwenden Sie jQuery validation plugin auf dem Client, und welche Methode ist am Back-End geeignet (ich kenne ROR nicht).

Eine Ajaxy-Validierungslösung könnte eine serverseitige Validierung durchführen, während der Client Informationen eingibt und Rückmeldung liefert/die Übermittlung entsprechend verhindert.

Hoffe, dass hilft.

1

Beide ............

2

Verwenden Sie beide.

Die Validierung auf der Clientseite verringert die Belastung des Servers, wenn der Client JavaScript aktiviert hat.

Serverseite ist Ihre letzte Verteidigungslinie, die für den Fall vorhanden sein sollte, dass der Benutzer JavaScript deaktiviert hat.

2

Sie sagen:

so konnte ich auf dem Modell einige Back-End-Validierungen tun, nachdem das Formular durch den Benutzer abgegeben wird.

Nein! Sie müssen müssen Validierungen auf dem Backend!

Javascript kann deaktiviert werden, Formulare können gefälscht werden; Sie müssen also immer Validierungen/Filterungen/beliebige Sicherheitsmaßnahmen auf dem Backend/Server entwickeln.

Nur dann können Sie schließlich einige JS-Sache hinzufügen, so dass Ihre Anwendung benutzerfreundlicher ist.

0

Spammer verwenden oft eine Art Skript, das die Form analysiert und Formulardaten erstellt und selbst veröffentlicht, sodass das Client-Skript gegen die meisten Spamming völlig nutzlos ist.

0

JavaScript-Validierung ist eine großartige Möglichkeit, um die Hände nicht-böswilliger Benutzer zu halten. "Die von Ihnen eingegebenen Passwörter stimmen nicht überein", "sieht wie eine ungültige E-Mail-Adresse aus, bitte überprüfen Sie sie", etc.

Der Nachteil von JavaScript ist, dass es keine Möglichkeit gibt zu verifizieren, dass es lief, noch dass es wie beabsichtigt lief. Ein böswilliger Benutzer oder einer mit einem glitschigen Browser-Plugin oder einer mit einem übereifrigen Firewall-/Inhaltsblocker, ein Spambot ohne JavaScript, ein Benutzer mit NoScript-Aktivierung oder eine beliebige Anzahl anderer Situationen kann dazu führen, dass Ihre Validierung nie ausgelöst wird.

Daher sollte Ihr Server Daten immer überprüfen, wenn eine Validierung erforderlich ist. JavaScript kann eine erste Verteidigungslinie sein, aber es kann niemals die letzte sein.

Verwandte Themen