]> git.mxchange.org Git - ctracker.git/blobdiff - libs/lib_connect.php
Added 'safe_mode' (php.ini setting).
[ctracker.git] / libs / lib_connect.php
index 7a155de919a85c803f4ff02d8487e15a0446f86e..8686ec54e490f9e1eacc70cc153c627fc0f4fa61 100644 (file)
@@ -119,7 +119,7 @@ function crackerTrackerInsertArray ($table, $rowData) {
 // Updates a given entry by just counting it up
 function updateCrackerTrackerEntry ($rowData) {
        // Construct the SELECT query
-       $SQL = 'UPDATE `ctracker_data` SET `count`=`count`+1 WHERE `remote_addr`="' . crackerTrackerEscapeString($rowData['remote_addr']) . '" AND `check_worm` = "' . crackerTrackerEscapeString($rowData['check_worm']) . '" LIMIT 1';
+       $SQL = 'UPDATE `ctracker_data` SET `count`=`count`+1 WHERE (`remote_addr`="' . crackerTrackerEscapeString($rowData['remote_addr']) . '" OR `proxy_addr`="' . crackerTrackerEscapeString($rowData['proxy_addr']) . '") AND `check_worm` = "' . crackerTrackerEscapeString($rowData['check_worm']) . '" LIMIT 1';
 
        // Run the SQL and check if we have one line
        runCrackerTrackerSql($SQL, __FUNCTION__, __LINE__);
@@ -128,7 +128,7 @@ function updateCrackerTrackerEntry ($rowData) {
 // Checks if an entry with IP/check_worm/domain combination is there
 function isCrackerTrackerEntryFound ($rowData) {
        // Construct the SELECT query
-       $SQL = 'SELECT `id` FROM `ctracker_data` WHERE `remote_addr`="' . crackerTrackerEscapeString($rowData['remote_addr']) . '" AND `check_worm` = "' . crackerTrackerEscapeString($rowData['check_worm']) . '" AND `server_name`="' . crackerTrackerEscapeString($rowData['server_name']) . '" LIMIT 1';
+       $SQL = 'SELECT `id` FROM `ctracker_data` WHERE (`remote_addr`="' . crackerTrackerEscapeString($rowData['remote_addr']) . '" OR `proxy_addr`="' . crackerTrackerEscapeString($rowData['proxy_addr']) . '") AND `check_worm` = "' . crackerTrackerEscapeString($rowData['check_worm']) . '" AND `server_name`="' . crackerTrackerEscapeString($rowData['server_name']) . '" LIMIT 1';
 
        // Run the SQL and check if we have one line
        return ((isCrackerTrackerDatabaseLinkUp()) && (mysql_num_rows(runCrackerTrackerSql($SQL, __FUNCTION__, __LINE__)) == 1));
@@ -311,14 +311,20 @@ function isCrackerTrackerIpSuspicious () {
                return FALSE;
        } // END - if
 
-       // We only need the very last attempt to get!
-       $result = runCrackerTrackerSql("SELECT * FROM `ctracker_data` WHERE `remote_addr`='" . determineCrackerTrackerRealRemoteAddress() . "' ORDER BY `last_attempt` DESC LIMIT 1", __FUNCTION__, __LINE__);
+       // Check if an entry is there
+       $result = runCrackerTrackerSql("SELECT COUNT(`id`) AS `cnt` FROM `ctracker_data` USE INDEX (`remote_proxy_last`) WHERE `remote_addr`='" . determineCrackerTrackerRealRemoteAddress() . "' OR `proxy_addr`='" . getenv('REMOTE_ADDR') . "' LIMIT 1", __FUNCTION__, __LINE__);
 
-       // Do we have entries?
-       $found = (mysql_num_rows($result) == 1);
+       // Get row count
+       list($rows) = mysql_fetch_row($result);
+
+       // Is there one entry?
+       $found = ($rows > 0);
 
        // And again?
        if ($found === TRUE) {
+               // Yes, one is found, then load it
+               $result = runCrackerTrackerSql("SELECT SQL_SMALL_RESULT * FROM `ctracker_data` USE INDEX (`remote_proxy_last`) WHERE `remote_addr`='" . determineCrackerTrackerRealRemoteAddress() . "' OR `proxy_addr`='" . getenv('REMOTE_ADDR') . "' ORDER BY `last_attempt` DESC LIMIT 1", __FUNCTION__, __LINE__);
+
                // Cache the entry
                $GLOBALS['ctracker_last_suspicious_entry'] = mysql_fetch_array($result);
        } // END - if
@@ -333,7 +339,7 @@ function isCrackerTrackerIpSuspicious () {
 // Does the current IP have a ticket?
 function ifCrackerTrackerIpHasTicket () {
        // We only give one ticket per IP!
-       $result = runCrackerTrackerSql("SELECT * FROM `ctracker_ticket` WHERE `ctracker_ticket_remote_addr`='" . determineCrackerTrackerRealRemoteAddress() . "' LIMIT 1", __FUNCTION__, __LINE__);
+       $result = runCrackerTrackerSql("SELECT * FROM `ctracker_ticket` WHERE `ctracker_ticket_remote_addr`='" . determineCrackerTrackerRealRemoteAddress() . "' OR `ctracker_ticket_proxy_addr`='" . getenv('REMOTE_ADDR') . "' LIMIT 1", __FUNCTION__, __LINE__);
 
        // Do we have a ticket?
        $found = (mysql_num_rows($result) == 1);
@@ -356,6 +362,7 @@ function addCrackerTrackerTicket (array $data) {
        // Prepare the array
        $GLOBALS['ctracker_last_ticket'] = array(
                'ctracker_ticket_remote_addr' => determineCrackerTrackerRealRemoteAddress(),
+               'ctracker_ticket_proxy_addr'  => getenv('REMOTE_ADDR'),
                'ctracker_ticket_user_agent'  => crackerTrackerUserAgent(),
                'ctracker_ticket_name'        => crackerTrackerSecureString($data['name']),
                'ctracker_ticket_email'       => crackerTrackerSecureString($data['email']),