Added logging/detection of proxy IP address
authorRoland Haeder <roland@mxchange.org>
Sun, 11 Aug 2013 12:15:49 +0000 (12:15 +0000)
committerRoland Haeder <roland@mxchange.org>
Sun, 11 Aug 2013 12:15:49 +0000 (12:15 +0000)
libs/lib_connect.php
libs/lib_detector.php
libs/lib_updates.php
libs/mails/de/user_add_ticket.tpl
libs/mails/de/webmaster_add_ticket.tpl
libs/mails/en/user_add_ticket.tpl
libs/mails/en/webmaster_add_ticket.tpl

index 7a155de919a85c803f4ff02d8487e15a0446f86e..c0476d4ef4575f40c985c23fea96db5258b5311d 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));
@@ -312,7 +312,7 @@ function isCrackerTrackerIpSuspicious () {
        } // 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__);
+       $result = runCrackerTrackerSql("SELECT * FROM `ctracker_data` WHERE `remote_addr`='" . determineCrackerTrackerRealRemoteAddress() . "' OR `proxy_addr`='" . getenv('REMOTE_ADDR') . "' ORDER BY `last_attempt` DESC LIMIT 1", __FUNCTION__, __LINE__);
 
        // Do we have entries?
        $found = (mysql_num_rows($result) == 1);
@@ -333,7 +333,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 +356,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']),
index a6f8435897fea393f852eb40a24a0b9f5bbeab54..6f120498192756b8d581e4cc24eefca454558322 100644 (file)
@@ -221,6 +221,7 @@ function crackerTrackerSendMail ($mail, $recipient = NULL, $subject = NULL) {
        // Construct dummy array
        $rowData = array(
                'remote_addr' => determineCrackerTrackerRealRemoteAddress(),
+               'proxy_addr'  => getenv('REMOTE_ADDR'),
                'check_worm'  => $GLOBALS['ctracker_checkworm'],
                'server_name' => crackerTrackerServerName()
        );
@@ -321,6 +322,7 @@ function crackerTrackerLogAttack () {
        // Prepare array for database insert
        $rowData = array(
                'remote_addr'   => determineCrackerTrackerRealRemoteAddress(),
+               'proxy_addr'    => getenv('REMOTE_ADDR'),
                'user_agent'    => crackerTrackerUserAgent(),
                'get_data'      => crackerTrackerQueryString(),
                'post_data'     => $GLOBALS['ctracker_post_track'],
index 1b8bcc9a0116a9e784fc6e2492431b8ad571ae0e..1f03ed82bc9f2bafd215686c32fc92147dc485cb 100644 (file)
@@ -60,7 +60,13 @@ FOREIGN KEY ( `ctracker_data_id` ) REFERENCES `' . $GLOBALS['ctracker_dbname'] .
                        "UPDATE `ctracker_data` SET `script_name`=NULL WHERE `script_name`=''",
                        "ALTER TABLE `ctracker_data` CHANGE `server_name` `server_name` TINYTEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'Server''s host name'",
                        "UPDATE `ctracker_data` SET `server_name`=NULL WHERE `server_name`=''",
-               )
+               ),
+
+               // Also store proxy address
+               2 => array(
+                       'ALTER TABLE `ctracker_data` ADD `proxy_addr` VARCHAR(15) NULL DEFAULT NULL',
+                       'ALTER TABLE `ctracker_ticket` ADD `ctracker_ticket_proxy_addr` VARCHAR(15) NULL DEFAULT NULL',
+               ),
        );
 }
 
index dbb9f2d1806d12384429cec857c4ef37aeb1097b..af0bffb45026e851c5a5caa9ae6399a50642fb48 100644 (file)
@@ -9,6 +9,8 @@ Email: $content[ctracker_ticket_email]
 ----------------------------------------------------
 Ihre IP: $content[ctracker_ticket_remote_addr]
 ----------------------------------------------------
+Ihre Proxy-IP: $content[ctracker_ticket_proxy_addr]
+----------------------------------------------------
 Ihr Browser: $content[ctracker_ticket_user_agent]
 ----------------------------------------------------
 Kommentar:
index 1d731aaf1cd1b34a93323e1708e3c7dc2bac361e..953ba822457de976a564ac094a10349e7053f9d4 100644 (file)
@@ -9,6 +9,8 @@ Email: $content[ctracker_ticket_email]
 ----------------------------------------------------
 IP: $content[ctracker_ticket_remote_addr]
 ----------------------------------------------------
+Proxy-IP: $content[ctracker_ticket_proxy_addr]
+----------------------------------------------------
 Browser: $content[ctracker_ticket_user_agent]
 ----------------------------------------------------
 Kommentar:
index dcd24470fbb7f6d01c8050220fec3797a8b9c43c..99b1b827c81bffc1ef2014fa0942b815cfbe08d1 100644 (file)
@@ -9,6 +9,8 @@ Email: $content[ctracker_ticket_email]
 ----------------------------------------------------
 Your IP: $content[ctracker_ticket_remote_addr]
 ----------------------------------------------------
+Proxy IP: $content[ctracker_ticket_proxy_addr]
+----------------------------------------------------
 Your browser: $content[ctracker_ticket_user_agent]
 ----------------------------------------------------
 Comments:
index dfb4abc194b26498772a8d363b0a6647b63aa53a..aa939af69cce61d9278fd4f37728aa5e63944e32 100644 (file)
@@ -7,7 +7,9 @@ Name: $content[ctracker_ticket_name]
 ----------------------------------------------------
 Email: $content[ctracker_ticket_email]
 ----------------------------------------------------
-IP: $content[ctracker_ticket_remote_addr]
+Real IP: $content[ctracker_ticket_remote_addr]
+----------------------------------------------------
+Proxy IP: $content[ctracker_ticket_proxy_addr]
 ----------------------------------------------------
 Browser: $content[ctracker_ticket_user_agent]
 ----------------------------------------------------