Weiterleitung mit POST-Variablen

  • Themenstarter Themenstarter Typh00n
  • Beginndatum Beginndatum
T

Typh00n

Hallo,

Ich bin gerade an meine Grenzen gestoßen bei der implementierung einer Hompage, bei nach dem loggin grundsätzlich drei Szenarien passieren können:

1. Es wird zu einer userID KEIN datensatz gelesen: Es wird ein Text angezeigt. ---> Kein Problem
2. Es wird zu einer userID EIN datensatz gelesen: Es soll eine automatische weiterleitung zu einer anderen *.php gemacht. Hierbei sollen Variablen NICHT SICHTBAR übertragen werden. ---> Großes Problem
3. Es wird zu einer userID MEHRERE datensätze gelesen: Es soll eine Liste mit dem datensätzen ausgegeben werden wobei jeder einzelner Eintrag ein Link zu der genannten *.php Datei ist, der ich die Datensatz variablen übergeben sollte.


Mein Problem ist einfach dass ich nicht weiß wie mann quasi unsichtbar variablen übergibt ohne formular, sondern nur mit links bzw. als automatische weiterleitung.


mfg
Typh00n
 
Warum speicherst du nicht einfach den Variableninhalt Serverseitig in ner Session und übergibst diese per GET?
 
Wenn es eine gescheite Session gibt, kann man darüber ja auch die User-ID feststellen und die Daten da holen, wo sie eigentlich erst gebraucht werden.
 
Hi bofh1337,

Variablen unsichtbar weitergeben, ist eigentlich ganz einfach. Den folgenden Code in die erste Zeile, also über den HTML-Tag reinschreiben. Der ist zwar doppelt gemoppelt, aber sicher ist sicher.

PHP:
<?php
	ini_set('session.use_cookies', true);
	ini_set('session.use_only_cookies', true);
	ini_set('session.use_trans_sid', false);
		
	session_start();
?>

Dennoch sind sie aber nicht unsichtbar und jederzeit auszulesen aus den Cookies, der Inhalt ist zwar verschlüsselt, aber dennoch ist er da. Daher mein Tipp, ich weiß nicht, wie es andere machen, aber es gibt ja verschiedene Varianten. Hängt ganz davon ab, wie lange der User mit dem selben Cookie bei dir eingeloggt bleiben darf ohne Neuanmeldung:

IP des Users in MD5 Kombination mit dem heutigen Datum oder sehr empfehlenswert, der Anzahl Tage die vergangen sind, seit einem bestimmt Datum in der Vergangenheit mit derselben Uhrzeit (02.01.2010 03:17 - 17.03.1995 03:17), so kannst du dann einen Cookie erstellen, der ein Tag gültig ist, oder du machst ein festes Datum und dann kannst du auch den Cookie jedes Mal um 100 Tage verlängern. Wie du es möchtest...

Hoffe das war was du gesucht hast.

Gruß, Adnan
 
Zuletzt bearbeitet:
Hi bofh1337,

Variablen unsichtbar weitergeben, ist eigentlich ganz einfach. Den folgenden Code in die erste Zeile, also über den HTML-Tag reinschreiben. Der ist zwar doppelt gemoppelt, aber sicher ist sicher.

PHP:
<?php
	ini_set('session.use_cookies', true);
	ini_set('session.use_only_cookies', true);
	ini_set('session.use_trans_sid', false);
		
	session_start();
?>

Dennoch sind sie aber nicht unsichtbar und jederzeit auszulesen aus den Cookies, der Inhalt ist zwar verschlüsselt, aber dennoch ist er da. Daher mein Tipp, ich weiß nicht, wie es andere machen, aber es gibt ja verschiedene Varianten. Hängt ganz davon ab, wie lange der User mit dem selben Cookie bei dir eingeloggt bleiben darf ohne Neuanmeldung:

IP des Users in MD5 Kombination mit dem heutigen Datum oder sehr empfehlenswert, der Anzahl Tage die vergangen sind, seit einem bestimmt Datum in der Vergangenheit mit derselben Uhrzeit (02.01.2010 03:17 - 17.03.1995 03:17), so kannst du dann einen Cookie erstellen, der ein Tag gültig ist, oder du machst ein festes Datum und dann kannst du auch den Cookie jedes Mal um 100 Tage verlängern. Wie du es möchtest...

Hoffe das war was du gesucht hast.

Gruß, Adnan

Ich suche hier doch keine Hilfe

MD5 ist (inzwischen) für Sicherheits-Funktionen zu unsicher geworden, deshalb sollte man Projekt, welche erst noch gebaut werden, gleich mit sha256 ausstatten, das wird noch ein paar Jahre dauern, bis das unsicher wird.
Ich halote es in meinen Projekten so, das ich eine PHP5-Klasse habe, welche die Session-Klamotte abwickelt, diese Klasse wird im Script-Core eingebunden und kümmert mich dann nicht weiter, weil ich für Script-Erweiterungen da nicht mehr dran muss
 
Uiiii, wie ist mir das denn passiert :confused:

Sorry, natürlich mein ich nicht dich bofh1337, sondern den, der das Thread eröffnet hat.


Zu der Verschlüsselung:

Das hängt ganz von der Empfindlichkeit der Daten ab.

bofh1337, du hast natürlich vollkommen recht, aber ich denke, dass in den meisten Fällen eine MD5-Verschlüsselung mit kombinierten dynamischen Werten ausreicht.

Gruß, Adnan
 
Hallo,

Vielen Dank für die Antworten! :)

Per Cookies kann ich das leider nicht machen, da ja nicht jeder User cookies im Browser eingeschaltet hat.
Das mit der Session würde Hinhaun, sovern immer nur ein Datensatz gelesen wird. Wenn aber mehrere Datensätze eingelesen werden hab ich ja eine Auswahlliste und ich kann mit einem HTML-Link nichts in die Session speichern oder?

mfg
 
hi typh00n!

Du hast 2 Möglichkeiten:

1. Du machst ein verstecktes Formular und veränderst es durch einen js, bevor du das formular abschickst (Das halte ich zwar für möglich, aber für sehr () unschön)

2. Du speicherst die deine Links als Array in der Session. Nach einem Klick auf einen Link übergibst du dem nächsten Script den Arrayindex und der leitet den Benutzer dann weiter. alla:
header("Location: ".$_SESSION['linkarray'][$_GET['index']]);

lg
 
Jetzt mal ehrlich, du brauchst etwas vom Nutzer, was Unique ist. Cookies sind da die elegante Lösung, da eine ID im Link als unsicher betrachtet werden kann.

MD5 um einen Unique-Key zu generieren sollte reichen. Wichtiger hier ist die Validierung dieses Unique Keys.
Es gibt mehrere Möglichkeiten:

Als sicher zu betrachen ist:

Key-->Zeit-->IP

Dies in Kombination gesetzt sollte reichen um eine für den Nutzer nicht eindeutige ID mit deinen Werten übergeben zu können.
Bedenke bitte HTTP ist ein statisches Protokoll. Das heißt:

Anfrage-->Aktion-->Ausgabe

Die interaktion geht dabei immer vom Client aus. Die Reaktion vom Server.


Kurz zusammengefasst:
- vegebe eine Unique Session-ID.
- Validiere diese mit gegebenen Parametern.
- Sorge für kurze Session-ID Laufzeiten
- Übergebe nie deine hidden IDs

So sollte es klappen.

Eine kranke Lösung wäre es übrigens, das 2te Script von deinem Script aufzurufen. Dazu beschäftige dich mit dem HTTP-Protokoll und danach mit allem rund um http://www.php.net/manual/de/function.fsockopen.php

Mehr Hilfestellung kann/will ich dir diesbezüglich aber nicht geben.
 
2. Du speicherst die deine Links als Array in der Session. Nach einem Klick auf einen Link übergibst du dem nächsten Script den Arrayindex und der leitet den Benutzer dann weiter. alla:
header("Location: ".$_SESSION['linkarray'][$_GET['index']]);

Genial! Danke, das werd ich machen :)
 
Zurück