Moin!
Hi Sven,
Kann man machen, muß man aber nicht. Hängt davon ab, wie das Skript reagiert, wenn gewisse Felder nicht vorhanden sind. Die Schlussfolgerung "Wenn alle genannten Felder vorhanden sind, dann kommt der Request vom Gästebuchformular" ist jedenfalls nicht zutreffend.
Naja ich meinte damit ehern, das man die wichtigsten Felder vom Formular dann so absichert, man hätte ja auch sein eigenes Formular schreiben können und dieses dann abschicken können. Sollte aber jeder selber so wissen. Eine andere Möglichkeit wusste ich jetzt nicht :/
Warum benutzt du hier addslashes? Und htmlspecialchars?
addslashes solltest du nicht benutzen, sondern mysql_escape_string(). Außerdem solltest du in diesem Fall sicherstellen, dass Magic_quotes_gpc ausgeschaltet ist, ansonsten wäre es sehr ratsam, die dadurch hinzugefügten Slashes vorher mit stripslashes zu entfernen!
Dafür sollte ich wohl noch etwas mehr Code posten, was davor noch kommt:
if(get_magic_quotes_gpc())
{
array_stripslashes($_GET);
array_stripslashes($_POST);
array_stripslashes($_COOKIE);
}
Die dazu gehörige Funktion die included wird:
function array_stripslashes(&$input)
{
if(is_string($input))
{
$input = stripslashes($input);
}
else
{
if(is_array($input))
{
foreach($input AS $key => $value)
{
array_stripslashes($input[$key]);
}
}
}
}
Ja und deswegen habe ich vorher htmlspecialchars benutzt da man eigentlich seine Daten immer vorher überprüfen sollte da sonst es einem Hacker per XSS die Möglichkeit gegeben wird das Programm zu missbrauchen! Jedenfalls meine Meinung. Desweiteren sollte man noch die Zeichen ' " und \ escapen lassen, quasi müssen da ein \ vorschreiben lassen. Sicherlich fragst du Dich warum habe ich die denn jetzt weggemacht wenn ich sie wieder hinzufüge. Nehmen wir mal an ich benutze kein stripslashes(). Wenn magic_quotes an ist ist ja alles gut. Dann hat PHP für uns vorsorglich die Zeichen escapet. Doch was ist wenn PHP das nicht macht? Denn ob PHP dies macht oder nicht hängt von der php.ini Datei ab. Und wenn er es nicht macht, dann kann dies den ganzen MySQL-Query zerhauen. Denn dann ist das sowas wie eine " ohne \ in einem PHP-String, welcher mit " startet und endet. Also, lieber Vorsicht als Nachsicht.
Ja ist halt so meine These, lasse mich jedoch gerne vom Fachmann belehren!
- Sven Rautenberg
LG Christoph
Ich bin ein spezialisz!
(Zitat von VENGA JO)
sh:) fo:) rl:° br:& ie:| mo:) va:) fl:) ss:| ls:< js:|
Die Erklärung zum Selfcode findest du hier: http://emmanuel.dammerer.at/selfcode.html
Einen Decoder für den Selfcode findest du hier: http://peter.in-berlin.de/projekte/selfcode