sicheres php formular

kase

Erfahrenes Mitglied
Hi,
ich habe ein kleines script geschreiben bei dem 2 dateien existieren, die eine befindet sich im Foren System und ist ein Formular (teamspeak_formular.php). Das Formular schickt die Daten an ein script das nicht per include mit den Forendateien verknüpft ist (teamspeak_create.php), da es in eine andere Datenbank die Formulardaten einträgt.
Nach meinem wissen kann man in einem php script nur zu einer datenbank connecten (belehrt mich eines besseren).

Mein Problem ist jetzt das das Formular nur aufgerufen werden kann wenn man sich registriert hat, allerdings kann man sich ja auf dem eigenen webspace ein kleines Formular schreiben das ohne Registrierung die Daten an die teamspeak_create.php schickt um sich so einen user zu erstellen, schlimmer wäre aber das dieses externe Formular keine sperre drin hat und somit ganz viele "spam" accounts erstellt werden könne.

Meine Frage ist nun ob man es irgendwie absichern kann damit create.php nur die daten von formular.php annimt?
Ich benutze "$_POST[username];".


Vielen Dankt und mit freundlichen Grüßen,
kase
 
Hi,
ich würde das so machen. Du erstellt beim Aufruf der Create-Datei eine Zufallszahl. Wenn du willst, kannst du diese noch mit MD5 verschlüsseln. Dann sieht es nicht mehr nach einer Zufallszahl aus. :) Diesen Wert trägst du dann in Verbindung mit der IP-Adresse und dem Datum in die Dtaenbank in eine extra Tabelle ein.
Wird das Formular nun abgesendet, überprüfst du ob eine Zufallszahl in der Datenbank gibt, die der gesendeten entspricht, ob die Uhrzeit nicht länger als 10 Minuten vorbei ist und, ob die IP-Adressen identisch sind. Wenn das der Fall ist, wird der entsprechende Datensatz einfach aus der Datenbank entfernt. Somit solltest du dann eigentlichen einen ziemlich starken Schutz vor diesen Atacken haben.

Mit freundlichem Gruß

Maik
 
stimmt, das wäre ein starkes ding, man muss aber bedenken das formular und create nicht den gleichen datenbank server nutzen!

von daher geht diese Variante glaube ich nicht :(
 
der zugriff funktioniert, das prob. ist nur das jenes Forumular schon auf die Forendatenbank zugreift (ist ins Control Center intigriert)

meine lieblingsmöglichkeit wäre das ein php script auf zwei verschiedene datenbanken zugreifen kann, das ist aber nicht möglich.

eine andere möglichkeit ist das jede 5 Minuten die datenbanktabelle mit der externen syncronisiert wird, das ist aber glaube ich nicht möglich!


meine frage ist daher ob es eine funktion gibt damit die POST daten nur von einer bestimmten domain angenommen werden.

mfg,
kase
 
kase hat gesagt.:
der zugriff funktioniert, das prob. ist nur das jenes Forumular schon auf die Forendatenbank zugreift (ist ins Control Center intigriert)

meine lieblingsmöglichkeit wäre das ein php script auf zwei verschiedene datenbanken zugreifen kann, das ist aber nicht möglich.

Klar geht das, du kannst doch mehrere Verbindungen herstellen.
Ich wüsste jedenfalls nix was jetzt dagegen sprechen würde.
 
Ja, einfach zwei Datenbank-Objekte erstellen.
Ich habs noch nie in der Praxis probiert aber ich wüsste nicht warum es nicht gehen sollte.
Ob man die Datenbank-Objekte Simultan verwenden kann weiß ich nicht, dürfte aber auch nicht nötig sein.

PHP:
$db = mysql_connect($server1, $user, $password);
mysql_select_db($database);
     Abfragen, Werte holen ...
mysql_close($db);

$db = mysql_connect($server2, $user, $password);
mysql_select_db($database);
     Abfragen, Werte speichern ...
mysql_close($db);
 
hey, es geht :D

VIELEN DANK

;-)

dann wäre das problem gelöst und ich habe wieder etwas gelehrnt ;)

mfg,
kase
 
Wenn Dein Problem geloest ist denk bitte daran den Thread als erledigt zu markieren.

Und ich moechte Dich bitten Dich in Zukunft an Gross- und Kleinschreibung zu halten.
 
Zurück