Versio

Query log

Overzicht Reageren

Yea Rupie

Yea Rupie

31/05/2010 21:27:02
Quote Anchor link
Beste forumers,

Ik heb een Query log op mijn site gezet, om snel de oorzaak te vinden als er sprake is van een lek/SQL-injection. Het probleem is dat hij alleen maar de SELECT query's opslaat en niet de UPDATE en INSERT query's.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
class database
{
    /* */
    $this->log_connection;
    
    public function __construct()
    {

        /* */
    }
    
    public function queryLog($query)
    {

        if($qry = mysql_query("SELECT * FROM log WHERE query = '".mysql_real_escape_string($query)."'",$this->log_connection)):
            if(mysql_num_rows($qry) == 0):

                mysql_query("INSERT INTO log VALUES ('".mysql_real_escape_string($query)."','".$_SERVER['REMOTE_ADDR']."','".($_SERVER['PHP_SELF'].((isset($_GET['p'])) ? htmlentities($_GET['p']) : 'noP'))."',NOW())",$this->log_connection);
            endif;
        endif;
    }

    
    public function query($query)
    {

        $this->queryLog($query);
        /* */
    }
}

?>


Alle query's worden zo uitgevoerd:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$db
= new database;
$query = $db->query($sql);
?>
 
PHP hulp

PHP hulp

25/05/2012 13:48:33
Gesponsorde koppelingen:
 
Noppes Homeland

Noppes Homeland

31/05/2010 22:03:17
Quote Anchor link
Welk nut heeft de SELECT alvorens het te inserten:
Antwoord: geen

htmlentities hoort niet thuis in een sql-statement, dat is een presentatie functie

Hetgeen je gepost hebt is te simplistisch om er eigenlijk dieper op in te gaan.

Het principe zal moeten zijn:
Als een query faalt dan zal deze gelogd moeten worden en dat is niet te herleiden uit hetgeen je nu aan code gepost hebt.
 
Yea Rupie

Yea Rupie

31/05/2010 22:19:36
Quote Anchor link
Heel stom van me, geen foutafhandeling .. normaal staat het er al bij en wordt het automatisch gelogt..
 



Overzicht Reageren

Get Adobe Flash player