Übergeben Sie wichtige Werte serverseitig beim Bearbeiten von Formularen

Ich arbeite an einem Plugin, das folgendes innerhalb eines

-Tags hat:

 <input type="hidden" name="postid" value=""> 

Das Problem dabei ist, dass Benutzer Element leicht überprüfen , den Wert ändern und somit die Formularverarbeitung beeinflussen können.

Die Formularverarbeitung erfolgt über eine Ajax-function und liegt (natürlich) außerhalb der Schleife.

Wie triggers man normalerweise diese Art von Szenario?

Solutions Collecting From Web of "Übergeben Sie wichtige Werte serverseitig beim Bearbeiten von Formularen"

Um ehrlich zu sein, denke ich, dass diese Frage ein Thema ist, denn ihr Thema ist ein allgemeines Konzept, das auf jede Sprache angewendet werden kann, die mit der Webentwicklung umgehen kann. Es ist also noch weiter als eine allgemeine PHP-Frage.

Übrigens, was ich vorschlagen möchte, ist zu viel für einen Kommentar.

Wenn Sie Daten überprüfen müssen, die von vertrauenswürdigen Benutzern stammen (vorausgesetzt, Sie haben bereits eine Möglichkeit, zu überprüfen, ob ein Benutzer vertrauenswürdig ist), müssen Sie ein System für die Datenintegritätsprüfung einrichten.

Ein einfaches Beispiel. Angenommen, Sie haben ein Formular wie:

 < ?php $data = get_my_form_data(); ?>     

Die function, die Daten abruft, ist nur ein Platzhalter, um eindeutige Daten vom Server zu erhalten, und wird dann zum Füllen von Formularwerten verwendet.

Sehen wir uns nun an, wie die Datenintegrität implementiert werden kann. Es wird normalerweise mit einer Zwei-Wege- (reversible) Verschlüsselung durchgeführt.

 < ?php function obfuscate_postid($id) { return wp_create_nonce('pre-md5').md5($id.AUTH_SALT).wp_create_nonce('post-md5'); } $data = get_my_form_data(); $check = obfuscate_postid($data['postid']); ?> 

Auf diese Weise können Sie dies in der serverseitigen Verarbeitung überprüfen

 $valid = obfuscate_postid($_POST['postid']) === $_POST['__ch']; 

Wenn ein Benutzer die Post-ID im Formular ändert, ohne die Prüfzeichenfolge zu ändern, ist $valid darüber falsch und Sie können die Verarbeitung der Daten stoppen.

Ich habe eine ziemlich einfache 2-Wege-Verschleierung verwendet, und dank der Tatsache, dass Nonces nicht in der Zeit behoben werden, ist dies ein ziemlich starker Weg, um Ihre Daten zu sichern.

Ich habe auch Nonces verwendet, um die Antwort ein bisschen mehr WordPress bezogen zu machen;)

Es wäre ein sehr starkes System, wenn Nonces nur einmal verwendbar wären, aber es ist ein Post-Voting-System, keine Online-Banking-Anwendung. Und wenn Sie möchten, können Sie auch nonces TTL ändern .

Beachten Sie schließlich, wie ich ein Salz verwendet habe, um md5 sicherer zu machen, denn selbst wenn md5 nicht reversibel ist, kann das Ergebnis von md5 für b706835de79a2b4e80506f582af3676a Ganzzahlen leicht gefunden werden (z. B. mit der Zeichenfolge b706835de79a2b4e80506f582af3676a ).