ERLEDIGT
JA
JA
ANTWORTEN
21
21
ZUGRIFFE
703
703
EMPFEHLEN
-
12.01.12 09:57 #16
Die zusätzliche Variable ist in dem Fall trivial, den ob er nun das Input-Feld direkt durch die Session-Variable befüllt oder mit einer nirmalen Variablen is "gehupft wie gehechtelt..."
Die Prüfung ist in Ordnung so, da er ja in seinem Formular den Token explizit in einem Hidden-Filed übergibt. Also wird dieser auch per POST übergeben. Klar wäre es besser auf ein bestimmtes Element im Formular zu prüfen, aber dieses ist so gesehen auch egal, solange es ein eindeutiges Feld ist und nirgendwo anders auch übergeben wird.
Mit Problemen duch den Namen des Submit-Button hab ich noch nicht gehört, auch nicht selber feststellen können.Die Schweine von heute sind unsere Schnitzel von morgen!
-
12.01.12 10:04 #17
- Registriert seit
- Sep 2004
- Ort
- Möglingen (BaWü)
- Beiträge
- 3.109
Von der Funktion her ist es natürlich egal ob man eine zusätzliche Variable einbaut oder nicht.Die zusätzliche Variable ist in dem Fall trivial, den ob er nun das Input-Feld direkt durch die Session-Variable befüllt oder mit einer nirmalen Variablen is "gehupft wie gehechtelt..."
Generell kann man sich aber leichter verschreiben oder Variablen vertauschen je mehr es davon gibt. Deshalb mein "Einwand".Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.
-
12.01.12 13:01 #18
Ja, die Variable $token ist nicht wirklich notwendig das stimmt, man kann genauso gut $_SESSION["token"]; direkt ins Input Feld setzen.
Aber was mich immer noch stört ist, das wenn ich 2 php Seiten habe in der einen das Formular mit Token Generierung in der anderen Seite die Verarbeitung von Token und Formular, dann verhindert das ein erneutes Senden des Formulars weil der Token beim erneuten Senden nichtmehr übereinstimmt.
Wenn ich das aber hier bei meiner Index.php mit Includierter Seite mache dann funktioniert ein erneutes Senden ohne Probleme weil das Formular immer mitübermittelt (weils ja im Prinzip ein und diesselbe Seite ist für Generierung des Tokens und Verarbeitung).
Ist das Sicherheitstechnisch gesehen schlimm oder kann ich so auch CSRF / XSRF Attacken erschweren ?
-
12.01.12 15:18 #19
- Registriert seit
- Sep 2004
- Ort
- Möglingen (BaWü)
- Beiträge
- 3.109
Dann mache doch eine separate Datei die "nur" die Token-Funktion enthält.
Diese Datei/Funktion includierst du dann überall da wo die sie brauchst.Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.
-
13.01.12 13:01 #20
Hmm also ich hab gestern mal die Token Funktion per Include und Include_once includiert, am eigentlichen Problem ändert sich aber leider nichts.
Das Formular ist über dem Seiteninclude im Quellcode. Includiere ich die Tokenfunktion über dem Formular ändert sich nichts, includiere ich darunter geht die Übermittlung nicht weil noch kein Token erzeugt ist.
Ich weiß jetzt nicht wie du das meinst mit dem Include. @ Tombe
-
13.01.12 20:27 #21
Ich habs jetzt ganz anders gemacht, hatte keine Lust mehr mit den Tokens hats nicht funktioniert.
Die Suche per GET
Code :1 2 3 4 5 6
<form action="index.php" method="get"> <div class="searchbar"> <input type="text" name="search" class="searchfield input" id="searchfield" maxlength="200" alt="Suche... " value="Suche... " onclick="document.getElementById('searchfield').value=''; this.style.color = '#000';" /> <input type="submit" id="submit" class="search-button" value="" /> </div> </form>
Die Verarbeitung direkt in der Index.php
Somit funktioniert das wunderbar.PHP-Code:if(isset($_GET["search"]) && !empty($_GET["search"])) {
$search = preg_replace( "/[^a-z0-9]/i", "", $_GET["search"] );
$sql = "SELECT * FROM ".$sqltab27." WHERE name LIKE '%".$db->escape($search)."%'";
.
.
.
usw
Jetzt eine letzte Frage dazu, ist das so von der Sicherheit her Ok ?
-
15.01.12 14:38 #22
Also ich hab ein bisschen gegoogelt und der Code ist so sicher.
Wer eine solche Suchfunktion also nachbauen will und auch das Formular und die Verarbeitung auf derselben Seite liegen hat hiermit einen Anhaltspunkt.
Code :1 2 3 4
<form action="index.php" method="get"> <input type="text" name="search" id="searchfield" maxlength="200" alt="Suche... " value="Suche... " /> <input type="submit" id="submit" value="" /> </form>
Das mit den Tokens entfällt in dem Fall weil die Suche keine kritische Anwendung ist.PHP-Code:if(isset($_GET["search"]) && !empty($_GET["search"])) {
// Ganz wichtig search muss gefiltert werden !!
$search = preg_replace( "/[^a-z0-9]/i", "", $_GET["search"] );
// In der Abfrage dann gegen SQL Injection sichern mit $db->escape ...
$sql = "SELECT * FROM ".$sqltab27." WHERE name LIKE '%".$db->escape($search)."%'";
Anders wäre es wenn das ganze ein Login wäre oder irgendwas womit die Datenbank direkt beeinflusst wird z.b. INSERT, UPDATE, DELETE FROM ...
Viel Spaß damit und Vielen Dank an die vielen Hilfestellungen von Tombe , Maniac und Saftmeister
Ähnliche Themen
-
Formular Token Problem
Von starfoxfs im Forum PHPAntworten: 5Letzter Beitrag: 20.09.09, 12:33 -
session token
Von inspector_71 im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 0Letzter Beitrag: 28.10.07, 11:01 -
Syntax error on token ")", delete this token
Von messmar im Forum JavaAntworten: 4Letzter Beitrag: 03.10.07, 02:37 -
token
Von benni miles im Forum C/C++Antworten: 1Letzter Beitrag: 01.04.07, 21:25 -
ungültiger Token
Von 123arne im Forum .NET Windows FormsAntworten: 3Letzter Beitrag: 12.10.05, 13:58






Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren