mirror of https://github.com/MISP/MISP
fix: [over-correlations] weren't truly case insensitive, causing potential issues matching and entering values
- wrapped adding a new value in a try catch, no need to make synchronisations fail over this - added case insensitive change to values on entry (table should be all lower-case) - added update script to lowercase existing valuespull/9090/head
parent
b82a151c7b
commit
2252d16c91
|
@ -84,7 +84,7 @@ class AppModel extends Model
|
||||||
87 => false, 88 => false, 89 => false, 90 => false, 91 => false, 92 => false,
|
87 => false, 88 => false, 89 => false, 90 => false, 91 => false, 92 => false,
|
||||||
93 => false, 94 => false, 95 => true, 96 => false, 97 => true, 98 => false,
|
93 => false, 94 => false, 95 => true, 96 => false, 97 => true, 98 => false,
|
||||||
99 => false, 100 => false, 101 => false, 102 => false, 103 => false, 104 => false,
|
99 => false, 100 => false, 101 => false, 102 => false, 103 => false, 104 => false,
|
||||||
105 => false, 106 => false, 107 => false, 108 => false,
|
105 => false, 106 => false, 107 => false, 108 => false, 109 => false
|
||||||
);
|
);
|
||||||
|
|
||||||
const ADVANCED_UPDATES_DESCRIPTION = array(
|
const ADVANCED_UPDATES_DESCRIPTION = array(
|
||||||
|
@ -1950,6 +1950,9 @@ class AppModel extends Model
|
||||||
case 108:
|
case 108:
|
||||||
$sqlArray[] = "ALTER TABLE `workflows` MODIFY `data` LONGTEXT;";
|
$sqlArray[] = "ALTER TABLE `workflows` MODIFY `data` LONGTEXT;";
|
||||||
break;
|
break;
|
||||||
|
case 109:
|
||||||
|
$sqlArray[] = "UPDATE `over_correlating_values` SET `value` = LOWER(`value`) COLLATE utf8mb4_unicode_ci;";
|
||||||
|
break;
|
||||||
case 'fixNonEmptySharingGroupID':
|
case 'fixNonEmptySharingGroupID':
|
||||||
$sqlArray[] = 'UPDATE `events` SET `sharing_group_id` = 0 WHERE `distribution` != 4;';
|
$sqlArray[] = 'UPDATE `events` SET `sharing_group_id` = 0 WHERE `distribution` != 4;';
|
||||||
$sqlArray[] = 'UPDATE `attributes` SET `sharing_group_id` = 0 WHERE `distribution` != 4;';
|
$sqlArray[] = 'UPDATE `attributes` SET `sharing_group_id` = 0 WHERE `distribution` != 4;';
|
||||||
|
|
|
@ -10,6 +10,7 @@ class OverCorrelatingValue extends AppModel
|
||||||
|
|
||||||
public static function truncate(string $value): string
|
public static function truncate(string $value): string
|
||||||
{
|
{
|
||||||
|
$value = mb_strtolower($value);
|
||||||
return mb_substr($value, 0, 191);
|
return mb_substr($value, 0, 191);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -45,11 +46,15 @@ class OverCorrelatingValue extends AppModel
|
||||||
if (!$this->isBlocked($value)) {
|
if (!$this->isBlocked($value)) {
|
||||||
$value = self::truncate($value);
|
$value = self::truncate($value);
|
||||||
$this->create();
|
$this->create();
|
||||||
$this->save([
|
try {
|
||||||
'value' => $value,
|
$this->save([
|
||||||
'occurrence' => 0
|
'value' => mb_strtolower($value),
|
||||||
]);
|
'occurrence' => 0
|
||||||
$this->blockedValues[$value] = true;
|
]);
|
||||||
|
$this->blockedValues[$value] = true;
|
||||||
|
} catch (Exception $e) {
|
||||||
|
//most likely we ran into an issue with capitalisation, there's no reason to break the process for this
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue