Ich denke, Stefan meint die Software des Themenerstellers, nicht deine.
Okay, Mißverständnis dann.
Auch wenn ich das nicht einbauen werde: Wie meinst du das genau?
Du hast etwas wie
<input type="text" id="mytext" />
Nun berechnest du z.B. den MD5-Hash von "mytext": 947ef8c8db156a568d5974d71f7638f4
Dann hast du einen Salt-String, Datum/Uhrzeit,
IP etc. pp. und was machst du damit?
Nein.
Nehmen wir dein Beispiel (id=mytext). Der
HTML-Code wird ja durch eine PHP-Datei erzeugt, also kann ich die ID ersetzen, schematisch:
<input type="text" id="<?php echo salted("mytext"); ?>" />
Dann habe ich eine gemeinsame Funktion die auf einen geheimen "Schlüssel" (bei mir außerhalb von Docroot) zugreifen kann, der als Salt dient. Nennen wir diese Stringvariable saltkey.
Dann könnte ich (hoffentlich habe ich die PHP-Syntax noch halbwegs drauf) folgendes machen:
PHP-Quellcode:
function salted($string)
{
return 'x_' . md5($_SERVER['REMOTE_ADDR'] . $string . $saltkey);
}
Nun steht also statt des Originalfeldes mit der ID 'mytext' das Feld mit der ID 'x_ABCDEF01234567899876543210FEDCBA' (das x_ ist dazu da zu verhindern daß die ID mit einer Ziffer beginnt, was in gewissen Konfigurationen Probleme bereiten kann).
Diese ID verändert sich mit jedem Aufruf von einer anderen
IP oder bspw. anderem Browser ... war immer man außer $_SERVER['REMOTE_ADDR'] eben noch so mit reinnimmt. Dadurch muß der Bot schon schlau sein, um die korrekt Position zu ermitteln. Man sollte aber ggf. auch die sichtbaren Strings mit diversen Methoden auf
HTML-Ebene verschleiern (weißer Hintergrund, Schriftzug mit fester Länger worin der Name, also bspw. 'Email', 'Passwort', versteckt wird
).
Der Empfänger des Formulars verfügt über die gleichen Daten (eben
IP, Browserkennung usw.) und kann daher den korrekten Namen des abgeschickten Feldes ermitteln und auswerten ...
Was passiert, wenn ich z.B. per Programm die POST-Daten sende, z.B. die von "mytext"?
Die Frage solltest du nun selber beantworten können.