Beim Aktualisieren eines Datensatzes in PHP besteht die Wahl zwischen der Verwendung von Aktionen ausführen (typischerweise über Formulare und HTTP-Methoden wie POST oder PUT) und Hyperlinks (die im Allgemeinen die GET-Methode verwenden) läuft auf Sicherheit und Beste hinaus Praktiken. Aus diesem Grund wird Aktionen ausführen bevorzugt:
Sicherheit
-
GET (Hyperlinks): Durch Links ausgelöste Aktionen verwenden normalerweise die GET-HTTP-Methode, die zum Abrufen von Informationen und nicht zum Ändern dieser Informationen konzipiert ist. Bei der Verwendung für Aktualisierungen oder Löschungen können vertrauliche Daten (z. B. die Datensatz-ID) in der URL offengelegt werden, was sie anfällig für Angriffe wie URL-Manipulation oder CSRF (Cross-Site Request Forgery) macht.
Problematisches Beispiel:
<a href="update.php?id=123">Update</a>
Jeder könnte die ID in der URL manipulieren, um nicht autorisierte Datensätze zu manipulieren.
-
POST (Aktionen ausführen): Updates sollten ein Formular mit der POST-Methode verwenden, bei dem Daten im Anforderungstext und nicht in der URL gesendet werden. Dieser Ansatz verbirgt sensible Informationen und erschwert unbefugte Manipulationen, insbesondere in Kombination mit zusätzlichen Sicherheitsmaßnahmen wie CSRF-Tokens.
Empfohlenes Beispiel:
<form action="update.php" method="POST">
<input type="hidden" name="id" value="123">
<button type="submit">Update</button>
</form>
Einhaltung der HTTP-Konventionen
Das HTTP-Protokoll hat klare Absichten für jede Methode:
-
GET: Ruft Informationen ab (idempotent und ohne Nebenwirkungen).
-
POST/PUT:Sendet oder aktualisiert Informationen (nicht idempotent und mit Nebenwirkungen).
Die Verwendung von GET für Aktionen wie Aktualisierungen oder Löschungen verstößt gegen diese Konventionen und kann Vermittler wie Caches oder Proxys verwirren, die GET-Anfragen möglicherweise als sicher und nebenwirkungsfrei behandeln.
Unbeabsichtigte Aktionen verhindern
- Hyperlinks können unbeabsichtigt ausgelöst werden (z. B. durch versehentliche Klicks oder Bots, die dem Link folgen).
- Ein Formular mit POST, insbesondere mit einem zusätzlichen Bestätigungsschritt, verringert die Wahrscheinlichkeit einer versehentlichen Ausführung.
Kompatibilität mit erweiterter Sicherheit und Validierung
Die Verwendung von Formularen ermöglicht die nahtlose Integration zusätzlicher Sicherheitsmaßnahmen, wie zum Beispiel:
-
CSRF-Tokens: Verhindern Sie böswillige Cross-Origin-Anfragen.
-
Eingabevalidierung:Validieren Sie die Datensatz-ID, bevor Sie das Formular absenden.
-
Berechtigungskontrolle: Überprüfen Sie die Benutzerzugriffsrechte, bevor Sie das Formular rendern.
Die Verwendung von Aktionen ausführen (über Formulare mit POST oder PUT) zum Aktualisieren von Datensätzen ist der empfohlene Ansatz. Dies gewährleistet eine bessere Sicherheit, entspricht den HTTP-Konventionen und verringert das Risiko versehentlicher Aktionen. Hyperlinks sollten der Navigation oder schreibgeschützten Aktionen vorbehalten sein, die den Systemstatus nicht ändern.
Das obige ist der detaillierte Inhalt vonWarum die Verwendung von POST für Updates sicherer ist als Hyperlinks. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn