]> git.mxchange.org Git - ctracker.git/commitdiff
Continued:
authorRoland Häder <roland@mxchange.org>
Wed, 28 Oct 2020 09:16:38 +0000 (10:16 +0100)
committerRoland Häder <roland@mxchange.org>
Wed, 28 Oct 2020 09:16:38 +0000 (10:16 +0100)
- added spam_bot_dectections field to allow counting spambot attacks

Signed-off-by: Roland Häder <roland@mxchange.org>
libs/lib_connect.php
libs/lib_detector.php
libs/lib_updates.php

index 952445486d1b0429e97be130b96ddeb6c5e00daf..2a6a3669721004e60fc3b4dfdc476a56aa4bd30c 100644 (file)
@@ -97,7 +97,7 @@ function crackerTrackerCloseDatabaseLink () {
 }
 
 // Inserts given array, if IP/check_get combination was not found
-function crackerTrackerInsertArray ($table, $rowData) {
+function crackerTrackerInsertArray ($table, array $rowData) {
        // Is there a link up?
        if (!isCrackerTrackerDatabaseLinkUp()) {
                // Abort silently here
@@ -124,9 +124,9 @@ function crackerTrackerInsertArray ($table, $rowData) {
 }
 
 // Updates a given entry by just counting it up
-function updateCrackerTrackerEntry (array $rowData) {
+function updateCrackerTrackerEntry (array $rowData, $countColumn = 'count') {
        // Construct the SELECT query
-       $sqlString = 'UPDATE `ctracker_data` SET `count`=`count`+1 WHERE (`remote_addr`="' . crackerTrackerEscapeString($rowData['remote_addr']) . '" OR `proxy_addr`="' . crackerTrackerEscapeString($rowData['proxy_addr']) . '") AND `` = "' . crackerTrackerEscapeString($rowData['']) . '" LIMIT 1';
+       $sqlString = 'UPDATE `ctracker_data` SET `' . $countColumn . '`=`' . $countColumn . '`+1 WHERE (`remote_addr`="' . crackerTrackerEscapeString($rowData['remote_addr']) . '" OR `proxy_addr`="' . crackerTrackerEscapeString($rowData['proxy_addr']) . '") LIMIT 1';
 
        // Run the SQL and check if we have one line
        runCrackerTrackerSql($sqlString, __FUNCTION__, __LINE__);
index 862c7387435e263dadf7a7ffb42a79648ad28a46..819adc63885387154805d795e3fa744997a7cd0c 100644 (file)
@@ -438,13 +438,27 @@ function crackerTrackerLogAttack () {
        crackerTrackerInsertArray('ctracker_data', $rowData);
 }
 
+function ctrackerIncreaseAntiSpambotCount () {
+       // Init row data
+       $rowData = [
+               'remote_addr'    => determineCrackerTrackerRealRemoteAddress(),
+               'proxy_addr'     => getenv('REMOTE_ADDR'),
+       ];
+
+       // Update count
+       updateCrackerTrackerEntry($rowData, 'spam_bot_dectections');
+}
+
 // Alerts the current user about malicious/suspicious traffic
 function crackerTrackerAlertCurrentUser () {
        // Is there some data?
        if (isset($GLOBALS['ctracker_last_suspicious_entry'])) {
                // Does the user have a ticket?
                if (ifCtrackerTrackerAntiSpamFieldGiven()) {
-                       // Spam-bot filled out anti-spam field
+                       // Spam-bot filled out anti-spam field, register count
+                       ctrackerIncreaseAntiSpambotCount();
+
+                       // Output message to spammer
                        ctrackerTrackerLoadTemplate('bot_captured');
                } elseif (ifCrackerTrackerIpHasTicket()) {
                        // Load "Thank you" template
index a51e584ec8286a2a6f8691e13ec040af77545e0a..c3d028718009b34f7ff4aad6f49c654dce6fd462 100644 (file)
@@ -98,6 +98,12 @@ FOREIGN KEY ( `ctracker_data_id` ) REFERENCES `' . $GLOBALS['ctracker_dbname'] .
                        FROM `ctracker_data`
                        GROUP BY `request_method`'
                ],
+
+               // Anti-spambot field
+               [
+                       "ALTER TABLE `ctracker_data` CHANGE `proxy_addr` `proxy_addr` varchar(15) COLLATE 'latin1_swedish_ci' NULL COMMENT 'Detected proxy address' AFTER `count`",
+                       "ALTER TABLE `ctracker_data` ADD `spam_bot_dectections` bigint unsigned NOT NULL DEFAULT '0' COMMENT 'Spam-bot attempts'",
+               ],
        ];
 }