Project

General

Profile

Actions

Bug #92099

closed

IpAnonymizationTask Bug

Added by TTG Team Web about 4 years ago. Updated about 4 years ago.

Status:
Closed
Priority:
Should have
Assignee:
-
Category:
scheduler
Target version:
-
Start date:
2020-08-25
Due date:
% Done:

0%

Estimated time:
TYPO3 Version:
8
PHP Version:
7.2
Tags:
Complexity:
Is Regression:
Sprint Focus:

Description

In the IpAnonymizationTask (sys_log) it's possible to set the mask level, but the mask level is not respected in the $queryBuilder statement starting on line 103 (typo3_src\typo3\sysext\scheduler\Classes\Task\IpAnonymizationTask.php).

It produces the following SQL query:

SELECT * FROM `sys_log` WHERE (`tstamp` < 1589263965) AND (`IP` <> "") AND (`IP` IS NOT NULL) AND (`IP` NOT LIKE "%.0.0") AND (`IP` LIKE "%::")  ORDER BY uid ASC LIMIT 50

So it assumes that the configured mask level is always 2

$queryBuilder->expr()->notLike(
  $configuration['ipField'],
  $queryBuilder->createNamedParameter('%.0.0', \PDO::PARAM_STR)
 ),

With this statement already level 1 masked records are returned (e.g. 164.27.221.0), which have to be masked again and again.

So the right expression would be

$queryBuilder->expr()->notLike(
  $configuration['ipField'],
  $queryBuilder->createNamedParameter('%.0', \PDO::PARAM_STR)
 ),

Possible solution:

$maskLevelLikeExpr = '%.0.0';
if ($this->mask === 1) {
  $maskLevelLikeExpr = '%.0';
}

// ...
$queryBuilder->expr()->notLike(
  $configuration['ipField'],
  $queryBuilder->createNamedParameter($maskLevelLikeExpr, \PDO::PARAM_STR)
 ),

Maybe the expression for ipv6 addresses has to be changed too.

Kind regards, Wolfgang


Related issues 1 (0 open1 closed)

Is duplicate of TYPO3 Core - Bug #92098: IpAnonymizationTask BugClosed2020-08-25

Actions
Actions

Also available in: Atom PDF