Alt 23.07.2006, 18:00:51   #1 (permalink)
SireMcDeath
abgemeldet

Reg: 20.04.2006
Beiträge: 162
Standard [PHP] Nach einem Formular prüfen, von welcher Domain die Daten kommen?

Hi!

Wie kann ich mit Hilfe von PHP checken, ob die übergebenen Werte aus einem Formular wirklich von dem Formular auf MEINER Seite kommen und das Formular nicht woanders aufgerufen wurde...

Referer? Wie geht das am besten? Gibts da ne Möglichkeit in htaccess, um Zugriffe nur von meiner Seite zu gestatten?

Merci
 
SireMcDeath ist offline   Mit Zitat antworten
Alt 23.07.2006, 18:10:22   #2 (permalink)
Icy
*
Benutzerbild von Icy

ID: 187087
Lose senden

Reg: 28.04.2006
Beiträge: 385
Standard

Mittels
PHP-Code:
1:
$_SERVER["HTTP_REFERER"
oder du generierst beim Aufruf des Formulares dynamisch lange nur einmal gültige IDs und packst sie in ein Hidden Feld und vergleichst nach dem Abschicken
*
Icy ist offline   Mit Zitat antworten
Alt 23.07.2006, 22:29:43   #3 (permalink)
Scar
www.Scar4U.de

ID: 81662
Lose senden
Reallife

Reg: 03.06.2006
Beiträge: 427
Standard

viele browser senden falsche oder garkeine referer, drum ist das keine wirklich gute lösung.

wenn du spam verhinden willst, solltest du einfach captcha grafiken integrieren.
Scar ist offline   Mit Zitat antworten
Alt 24.07.2006, 00:31:27   #4 (permalink)
artemissays
<user />

ID: 121691
Lose senden

Reg: 09.05.2006
Beiträge: 71
Standard

Es gibt auch noch eine weitere, etwas aufwendigere Methode. Du generierst "Page Tickets".

Sobald ein Benutzer auf deine Seite kommt generierst du erstmal paar Zahlen und speicherst sie irgendwo temporär ab.
Danach hängste diese Zahlen (immer nur eine) hinter jeden Link, also nachher via _GET wieder abrufbar.
Jede verbrauchte Zahl wird gelöscht und kannst sie entweder direkt löschen oder erst nach und nach, musst halt schaun.
Wenn die Zahl nicht übertragen wird oder sie nicht zur Session passt ist was schief gelaufen.
Ein Cronjob der dann alle paar Mins die Sachen löscht könnt auch helfen, der sollte aber nicht zu viel löschen sondern nur "veraltete" Sachen

Grüße,
artemis
artemissays ist offline   Mit Zitat antworten
Alt 24.07.2006, 00:48:31   #5 (permalink)
LasMiranda
kanz pöhse
Benutzerbild von LasMiranda

ID: 28058
Lose senden

LasMiranda eine Nachricht über ICQ schicken
Reg: 05.05.2006
Beiträge: 3.072
Standard

Zitat:
Zitat von artemissays
Es gibt auch noch eine weitere, etwas aufwendigere Methode. Du generierst "Page Tickets".
Seite einlesen, regexp, Wert anhängen
Gruß, Martin
LasMiranda ist offline   Mit Zitat antworten
Alt 24.07.2006, 14:45:38   #6 (permalink)
SireMcDeath
abgemeldet

Reg: 20.04.2006
Beiträge: 162
Standard

Zitat:
Zitat von LasMiranda
Seite einlesen, regexp, Wert anhängen

diese variante verstehe ich nicht... kannst du das etwas genauer erläutern?
 
SireMcDeath ist offline Threadstarter   Mit Zitat antworten
Alt 24.07.2006, 20:14:04   #7 (permalink)
Icy
*
Benutzerbild von Icy

ID: 187087
Lose senden

Reg: 28.04.2006
Beiträge: 385
Standard

Zitat:
Zitat von LasMiranda
Seite einlesen, regexp, Wert anhängen
Ja, ist ne Methode um den Schutz zu umgehen.

Hier eine Frage: Was ist eigendlich das Ziel? Was soll geschützt werden?

Wenn 'nur' verhindert werden soll das die Formulardaten von einer anderen Webseite kommen, um Umfragen und Bewertungen vor Manipulation zu schützen, reicht in der Tat ein Ticketsystem (was ich in ähnlicher Weise auch schon angeschnitten habe), denn die meisten Schummler baun sich, um auf Stimmenfang zu gehen, irgendwo auf einem Free Webspace ein sich automatisch abschickendes Formular und tragen die Seite in ein Besuchertauschsystem ein.

Soll jedoch sichergestellt werden, das das Formular wirklich von einem Menschen ausgefüllt wird, ist in der Tat ein Captcha oder Antibot Fallen (je nach Situation) die bessere Wahl
*

Geändert von Icy (24.07.2006 um 20:19:55 Uhr)
Icy ist offline   Mit Zitat antworten
Alt 24.07.2006, 21:51:41   #8 (permalink)
Scar
www.Scar4U.de

ID: 81662
Lose senden
Reallife

Reg: 03.06.2006
Beiträge: 427
Standard

Zitat:
Zitat von artemissays
Es gibt auch noch eine weitere, etwas aufwendigere Methode. Du generierst "Page Tickets". [...]
is zwar ne nette idee, aber mehr auch nicht. in der regel können links mehrfach und/oder in neuen browser geöffnet werden. dann würden aber die alten IDs weiterhin auf der seite stehn und man würde beim erneuten klick ins nirvana laufen. drum dürfte sowas nur für seiten mit javascript links effektiv genutzt werden können, weil man dort genau sowas unterbinden kann.
Scar ist offline   Mit Zitat antworten
Alt 24.07.2006, 22:28:19   #9 (permalink)
Icy
*
Benutzerbild von Icy

ID: 187087
Lose senden

Reg: 28.04.2006
Beiträge: 385
Standard

Zitat:
Zitat von Scar
...in der regel können links mehrfach und/oder in neuen browser geöffnet werden. dann würden aber die alten IDs weiterhin auf der seite stehn und man würde beim erneuten klick ins nirvana laufen...
Warum sollen die Klicks ins Nirvana laufen?
Wenn sie das tun, dann stimmt was am Code nicht - ruft man selber eine Seite 2x auf (oder zwei Leute rufen die Seite 1x auf - technisch das selbe Prinzip!), dann gibt es natürlich pro Aufruf eine neue ID, wobei die alte ID natürlich weiterhin gültig bleiben muss, sonst hat auch der Besucher ein Problem, der die Seite nur 1x aufruft, zwar genau dann, wenn ein anderer Besucher draufkommt und sich ne neue ID schnappt.

Und um zu verhindern, das man IDs durch pausenlose Aufrufe 'sammelt' und sie beim Faken aus der Sammeldatenbank runterrattern lässt, kann man, je wie man Lust hat, eins oder mehrere der folgenden Dinge tun:
  • Zeitbeschränkung (ID ist nur bestimmte Zeit gültig)
  • Max. 3 frische IDs pro IP; wird das Formular das 4. Mal aufgerufen, ohne es einmal abgeschickt zu haben, gibt es eine alte noch gültige ID aus dem Pool (recycling)
  • Ticket ID an Cookie, Useragent oder IP binden, Kombinationen sind möglich
  • Ticket ID an die Session ID der Sessionsteuerung des Muttersystems (z.B. VMS) binden
  • HTTP_REFERER zusätzlich prüfen
*
Icy ist offline   Mit Zitat antworten
Alt 26.07.2006, 00:02:47   #10 (permalink)
Scar
www.Scar4U.de

ID: 81662
Lose senden
Reallife

Reg: 03.06.2006
Beiträge: 427
Standard

wenn die ids wieder länger leben, würd es teils gehn. nur wer will schon sowas programmieren. dann doch lieber nen captcha oder text-bestätigungsfeld
Scar ist offline   Mit Zitat antworten
Alt 27.07.2006, 00:05:55   #11 (permalink)
Icy
*
Benutzerbild von Icy

ID: 187087
Lose senden

Reg: 28.04.2006
Beiträge: 385
Standard

Zitat:
Zitat von Scar
dann doch lieber nen captcha oder text-bestätigungsfeld
An einem Captcha frickelt man auch eine, ich sage mal, nicht unwesentliche Zeit dran rum, bis das richtig läuft und Captchas sind nervig, bei Gästebuch vielleicht noch Ok, aber bei Umfragen übertrieben und abschreckend (gibt weniger Stimmen)
*
Icy ist offline   Mit Zitat antworten
Antwort

Anzeige


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[PHP/MySQL] Via Formular Daten in DB übergeben!? scaleodisc Programmierung 4 11.12.2008 17:31:30
[S] coder für PHP formular das daten in DB(mysql) einträgt + DB inkl kompleter Einrichtung KillerNo1 Lose4Scripts (erledigt) 5 23.06.2008 18:29:04
[XML] Daten von Formular in XML-Datei? SunDay Programmierung 10 21.06.2008 18:07:05
Der schlechteste Versuch an PP Daten zu kommen trooper1976 Fun-Ecke 4 20.09.2007 09:07:07
[Hilfe] Daten aus einem popup heraus an Formular übergeben. Raymath Programmierung 2 17.03.2007 13:43:42


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:27:08 Uhr.