BSA
Erfahrenes Mitglied
Hi Leute!
Ich bin gerade dabei meine Scripte etwas Sicherer zu machen.
Also was die Sicherheit der Daten die in die DB eingetragen werden betrifft.
Dazu habe ich mir ne kleine Klasse geschrieben.
Diese Klasse soll alle $_POST, $_GET und $_COOKIE Arrays auf bestimmte Dinge überprüfen. Unter anderem wird auch die Funktion mysql_real_escape angewendet.
Nur leider scheinbar nicht richtig. Wenn ich mir ein kleines Testformular Bastel, geht es. Aber in meiner Anwendung nicht. *komisch*
Die Klasse sieht wie folgt aus:
In meiner Anwednung sieht das dann wie folgt aus:
Hat jetzt zufällig jemand ne Idee woran es liegen könnte das da bei mir nichts passiert (in der Anwendung)?
Ich bin gerade dabei meine Scripte etwas Sicherer zu machen.
Also was die Sicherheit der Daten die in die DB eingetragen werden betrifft.
Dazu habe ich mir ne kleine Klasse geschrieben.
Diese Klasse soll alle $_POST, $_GET und $_COOKIE Arrays auf bestimmte Dinge überprüfen. Unter anderem wird auch die Funktion mysql_real_escape angewendet.
Nur leider scheinbar nicht richtig. Wenn ich mir ein kleines Testformular Bastel, geht es. Aber in meiner Anwendung nicht. *komisch*
Die Klasse sieht wie folgt aus:
PHP:
class mysql_log{
function mysql_log(){
global $db_queries;
$db_queries++;
//-- Wenn magic_quotes_gpc (setzt Slashes vor bestimmte Sonderzeichen) aktiviert ist, mache
if(get_magic_quotes_gpc()) {
$this->array_strip_slashes($_GET);
$this->array_strip_slashes($_POST);
$this->array_strip_slashes($_COOKIE);
}
$this->array_strip_tags($_GET);
$this->array_strip_tags($_POST);
$this->array_strip_tags($_COOKIE);
$this->array_real_escape_string($_GET);
$this->array_real_escape_string($_POST);
$this->array_real_escape_string($_COOKIE);
}
function query($query){
global $db_queries;
$db_queries++;
$time = time();
mysql_query("INSERT INTO mysql_log (querie, seite, ip, browser, zeit) VALUES
('$query','".$_SERVER['REQUEST_URI']."','".$_SERVER['REMOTE_ADDR']."','".$_SERVER['HTTP_USER_AGENT']."','$time')");
return mysql_query($query);
}
function array_strip_slashes(&$var)
{
if(is_string($var)) {
$var = stripslashes($var);
} else {
if(is_array($var)) {
foreach($var AS $key => $value) {
mysql_log::array_strip_slashes($var[$key]);
}
}
}
}
function array_strip_tags(&$var)
{
if(is_string($var)) {
$var = strip_tags($var,"<span><b><i><ul><li>");
} else {
if(is_array($var)) {
foreach($var AS $key => $value) {
mysql_log::array_strip_tags($var[$key]);
}
}
}
}
function array_real_escape_string(&$var)
{
if(is_string($var)) {
$var = mysql_real_escape_string($var);
} else {
if(is_array($var)) {
foreach($var AS $key => $value) {
mysql_log::array_real_escape_string($var[$key]);
}
}
}
}
}
In meiner Anwednung sieht das dann wie folgt aus:
PHP:
$mysql = new mysql_log;
$mysql->query("UPDATE bilder SET ueberschrift = '".trim($_POST['ueberschrift'])."', beschreibung = '".trim($_POST['beschreibung'])."' WHERE id =
'".$_GET['edi']."'");
Hat jetzt zufällig jemand ne Idee woran es liegen könnte das da bei mir nichts passiert (in der Anwendung)?