2016-07-16 7 views
-1

Ich verwende ein verstecktes Eingabe-Tag, um eine Variable an ein PHP-Skript zu übergeben. Dies ist der Tag,Ich verwende ein verstecktes Eingabefeld, um Daten zu verschieben, gibt es einen besseren Weg?

<input type="hidden" name="batch" value="<?php echo $batch; ?>"> 

Die Variable $batch auf der Seite auf Benutzereingabe erzeugt wird und diese Variable muss ein Skript gehen, weshalb ich einen versteckten Input-Tag verwendet haben.

Ich denke, das ist nicht sehr sicher, da der Wert von der Variable $batch mit der Entwicklersymbolleiste oder Firebug geändert werden kann.

Um es deutlich zu machen,

<input type="hidden" name="batch" value="7"> 

ist das, was ich sehe Firebug verwenden. Ich kann den Wert von $batch ändern und dann das Formular abschicken.

Gibt es einen besseren Weg, dies zu tun?

+0

Sie nie von Sitzungen gehört habe? –

+0

@JohnConde Ich habe, aber ich bin mir nicht sicher, wie würde ich es in diesem Fall verwenden. Ich brauche das Skript, wenn eine Schaltfläche angeklickt wird und deshalb verwende ich ein Formular. –

+1

Wenn Sie Sitzungen nicht verwenden können oder wollen und Ihr verstecktes Feld manipulationssicher sein soll, können Sie es immer verschlüsseln. Wenn jemand den Wert manipuliert, schlägt die Entschlüsselung fehl und der Benutzer hat etwas getan, was er nicht tun sollte. –

Antwort

1

Sie können Sitzungen auch verwenden. Das wäre meiner Meinung nach sicherer, da es auf der Client-Seite nicht angezeigt werden kann.

Versuchen Sie folgendes:

$_SESSION['batch'] = $batch; 

Sobald die Sitzung gespeichert ist, können Sie diesen Wert in einer beliebigen Seite zugreifen können Sie durch Schreiben möchten:

echo $_SESSION['batch']; // Output: 7 
+0

Das Skript muss ausgeführt werden, wenn auf eine Schaltfläche geklickt wird. Auch wenn ich Sitzungen verwende, muss ich es irgendwo wiederholen, oder? Oder ich vermisse etwas? –

0

vorübergehend die Werte in einer Sitzung speichern.

Versteckte HTML-Eingaben sollten jedoch keine Sicherheitsprobleme verursachen, solange Sie sie (erneut) ordnungsgemäß validieren, bevor Sie sie in die Datenbank einfügen.

wie folgt aus:

$_SESSION['session_key'] = $session_value; 
Verwandte Themen