Actions
Bug #92099
closedIpAnonymizationTask Bug
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
Actions