[Web] Check smtp_tls_policy_map destination (more checks should be added)

master
andryyy 2020-03-04 12:35:15 +01:00
parent c9f455a2b1
commit e91ddef717
No known key found for this signature in database
GPG Key ID: 8EC34FF2794E25EF
3 changed files with 18 additions and 0 deletions

View File

@ -10,6 +10,14 @@ function tls_policy_maps($_action, $_data = null, $attr = null) {
$dest = idn_to_ascii(trim($_data['dest']), 0, INTL_IDNA_VARIANT_UTS46);
$policy = strtolower(trim($_data['policy']));
$parameters = (isset($_data['parameters']) && !empty($_data['parameters'])) ? $_data['parameters'] : '';
if (empty($dest) || in_array($dest, array('.', '*', '@'))) {
$_SESSION['return'][] = array(
'type' => 'danger',
'log' => array(__FUNCTION__, $_action, $_data, $_attr),
'msg' => 'tls_policy_map_dest_invalid'
);
return false;
}
if (!empty($parameters)) {
foreach (explode(' ', $parameters) as $parameter) {
if (!preg_match('/(.+)\=(.+)/i', $parameter)) {
@ -66,6 +74,14 @@ function tls_policy_maps($_action, $_data = null, $attr = null) {
);
continue;
}
if (empty($dest) || in_array($dest, array('.', '*', '@'))) {
$_SESSION['return'][] = array(
'type' => 'danger',
'log' => array(__FUNCTION__, $_action, $_data, $_attr),
'msg' => 'tls_policy_map_dest_invalid'
);
return false;
}
if (!empty($parameters)) {
foreach (explode(' ', $parameters) as $parameter) {
if (!preg_match('/(.+)\=(.+)/i', $parameter)) {

View File

@ -120,6 +120,7 @@
"recipient_map_entry_exists": "Eine Empfängerumschreibung für Objekt \"%s\" existiert bereits",
"tls_policy_map_entry_exists": "Eine TLS-Richtlinie \"%s\" existiert bereits",
"tls_policy_map_parameter_invalid": "Parameter ist ungültig",
"tls_policy_map_dest_invalid": "Ziel ist ungültig",
"temp_error": "Temporärer Fehler",
"text_empty": "Text darf nicht leer sein",
"subject_empty": "Betreff darf nicht leer sein",

View File

@ -120,6 +120,7 @@
"recipient_map_entry_exists": "A Recipient map entry \"%s\" exists",
"tls_policy_map_entry_exists": "A TLS policy map entry \"%s\" exists",
"tls_policy_map_parameter_invalid": "Policy parameter is invalid",
"tls_policy_map_dest_invalid": "Policy destination is invalid",
"temp_error": "Temporary error",
"text_empty": "Text must not be empty",
"subject_empty": "Subject must not be empty",