Ajout de la fonctionnalité de gestion des listes noires + refonte du système d'affichage des messages à l'utilisateur + création de la notion de page d'accueil + modification des paramètres de certaines fonctions + contôle de l'entrée d'informations utilisateurs sur les ajouts (faille XSS) + contrôle de l'existence d'un domaine lors de la création d'un alias virtuel + renommage de quelques variables

This commit is contained in:
ycharbi
2022-01-05 16:59:01 +01:00
parent 4651df9c62
commit 2f75db187a
20 changed files with 603 additions and 88 deletions
+2 -3
View File
@@ -61,11 +61,10 @@ _HEREDOC_;
echo "<span>$prefixe_utilisateur</span>";
}
?>
<input type="text" id="nom_pour_filtre" name="nom_alias" placeholder="alias*" onkeyup="filtreValeurs();" required>
<input type="text" id="nom_pour_filtre" name="nom_alias_virtuel" placeholder="alias*" onkeyup="filtreValeurs();" required>
<span>@</span>
<select name="choix_domaine_alias">
<select name="choix_domaine_alias_virtuel">
<?php
var_dump($liste_domaines);
try {
foreach ($liste_domaines as $domaine_bdd => $domaine) {
echo "<option value=\"".$domaine['domaine']."\">".$domaine['domaine']."</option>\n";
+1
View File
@@ -46,6 +46,7 @@ $liste_domaines = listeDomainesPostfix($pdo);
}
?>
</select>
<!-- Définition du domaine sélectionné comme étant par défaut -->
<input type="submit" value="Définir par défaut">
</form>
+106 -9
View File
@@ -4,15 +4,112 @@
* Page de gestion importé par la page d'administration centrale permettant la gestion des listes noires.
*/
/*
session_start();
require_once($_SERVER["DOCUMENT_ROOT"]."/inclusions/entete.php");
require_once($_SERVER["DOCUMENT_ROOT"]."/inclusions/barre_entete.php");
*/
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/sessions/privileges.php");
if (testPrivileges()!="administrateur") {
header("Location: /pages/visiteurs/formulaire_accueil.php?erreur=2");
die();
}
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/listes_noires.php");
$liste_entrees_liste_noires_dst=listeEntreeListeNoireDstPostfix($pdo);
$liste_entrees_liste_noires_exp=listeEntreeListeNoireExpPostfix($pdo);
/**
* Permet d'inclure la page d'administration des listes noires déstinataires ou expéditeurs dédiée.
*/
echo <<<_heredoc_
<div>
<h1>Choisissez un type de liste noire à éditer :</h1>
<a href="/pages/gestion/administration.php?page=listes_noires&sousPage=destinataires">Destinataires</a>
<a href="/pages/gestion/administration.php?page=listes_noires&sousPage=expediteurs">Expéditeurs</a>
_heredoc_;
if (isset($_GET['sousPage']) && !empty($_GET['sousPage'])) {
switch ($_GET['sousPage']) {
case 'destinataires':
echo <<<_HEREDOC_
<h1>Ajouter une entrée dans la liste noire des destinataires</h1>
<form action="/services/traitements/liste_noire_dst/ajoutEntreeListeNoireDst.php" method="post">
<input type="text" id="nom_pour_filtre" name="courriel_entree_liste_noire_dst" placeholder="utilisateur@domaine.tld*" onkeyup="filtreValeurs();" required>
<select name="choix_action_entree_liste_noire_dst">
<option value="REJECT">REJECT</option>
<option value="DEFER">DEFER</option>
</select>
<input type="submit" value="Ajouter">
</form>
<h1>Entrées de la liste noire des destinataires du serveur de messagerie</h1>
<form class="" action="/services/traitements/liste_noire_dst/editEntreeListeNoireDst.php" method="post">
<ul id="liste_pour_filtre">
_HEREDOC_;
/**
* Liste des entrées de la liste noire des destinataires.
*/
try {
foreach ($liste_entrees_liste_noires_dst as $liste_entrees_liste_noires_dst_cles => $liste_entrees_liste_noires_dst_valeurs) {
echo "<li><input type=\"radio\" name=\"".$liste_entrees_liste_noires_dst_valeurs['id']."\" value=\"1\"";
if (isset($liste_entrees_liste_noires_dst_valeurs['active']) && !empty($liste_entrees_liste_noires_dst_valeurs['active']) && $liste_entrees_liste_noires_dst_valeurs['active']=="1") echo " checked";
echo "><input type=\"radio\" name=\"".$liste_entrees_liste_noires_dst_valeurs['id']."\" value=\"0\"";
if (isset($liste_entrees_liste_noires_dst_valeurs['active']) && $liste_entrees_liste_noires_dst_valeurs['active']=="0") echo " checked";
echo "><table><tr><td><p>".$liste_entrees_liste_noires_dst_valeurs['courriel']."</p></td><td><p>".$liste_entrees_liste_noires_dst_valeurs['action']."</p></td></tr></table><label class=\"input-label-supprimer-valeur\" for=\"supprimer-valeur-".$liste_entrees_liste_noires_dst_valeurs['id']."\">Supprimer</label><input type=\"checkbox\" class=\"input-checkbox-supprimer-valeur visuellement-cache\" id=\"supprimer-valeur-".$liste_entrees_liste_noires_dst_valeurs['id']."\"><a class=\"confirmation-suppression\" href=\"/services/traitements/liste_noire_dst/supprEntreeListeNoireDst.php?supprEntreeListeNoireDst=".$liste_entrees_liste_noires_dst_valeurs['id']."\">Confirmer la suppression</a></li>\n";
}
}
catch (\Exception $e) {
die ("Erreur de requête de selection utilisateurs pour \"$base\" : ".$e->getMessage());
}
echo <<<_HEREDOC_
</ul>
<input type="submit" value="Appliquer">
</form>
_HEREDOC_;
break;
case 'expediteurs':
echo <<<_HEREDOC_
<h1>Ajouter une entrée dans la liste noire des expéditeurs</h1>
<form action="/services/traitements/liste_noire_exp/ajoutEntreeListeNoireExp.php" method="post">
<input type="text" id="nom_pour_filtre" name="courriel_entree_liste_noire_exp" placeholder="utilisateur@domaine.tld*" onkeyup="filtreValeurs();" required>
<select name="choix_code_retour_entree_liste_noire_exp">
<option value="554">REJECT</option>
</select>
<input type="submit" value="Ajouter">
</form>
<h1>Entrées de la liste noire des expéditeurs du serveur de messagerie</h1>
<form class="" action="/services/traitements/liste_noire_exp/editEntreeListeNoireExp.php" method="post">
<ul id="liste_pour_filtre">
_HEREDOC_;
/**
* Liste des entrées de la liste noire des destinataires.
*/
try {
foreach ($liste_entrees_liste_noires_exp as $liste_entrees_liste_noires_exp_cles => $liste_entrees_liste_noires_exp_valeurs) {
echo "<li><input type=\"radio\" name=\"".$liste_entrees_liste_noires_exp_valeurs['id']."\" value=\"1\"";
if (isset($liste_entrees_liste_noires_exp_valeurs['active']) && !empty($liste_entrees_liste_noires_exp_valeurs['active']) && $liste_entrees_liste_noires_exp_valeurs['active']=="1") echo " checked";
echo "><input type=\"radio\" name=\"".$liste_entrees_liste_noires_exp_valeurs['id']."\" value=\"0\"";
if (isset($liste_entrees_liste_noires_exp_valeurs['active']) && $liste_entrees_liste_noires_exp_valeurs['active']=="0") echo " checked";
echo "><table><tr><td><p>".$liste_entrees_liste_noires_exp_valeurs['courriel']."</p></td><td><p>".$liste_entrees_liste_noires_exp_valeurs['code_retour']."</p></td></tr></table><label class=\"input-label-supprimer-valeur\" for=\"supprimer-valeur-".$liste_entrees_liste_noires_exp_valeurs['id']."\">Supprimer</label><input type=\"checkbox\" class=\"input-checkbox-supprimer-valeur visuellement-cache\" id=\"supprimer-valeur-".$liste_entrees_liste_noires_exp_valeurs['id']."\"><a class=\"confirmation-suppression\" href=\"/services/traitements/liste_noire_exp/supprEntreeListeNoireExp.php?supprEntreeListeNoireExp=".$liste_entrees_liste_noires_exp_valeurs['id']."\">Confirmer la suppression</a></li>\n";
}
}
catch (\Exception $e) {
die ("Erreur de requête de selection utilisateurs pour \"$base\" : ".$e->getMessage());
}
echo <<<_HEREDOC_
</ul>
<input type="submit" value="Appliquer">
</form>
_HEREDOC_;
break;
default:
echo " <h1>Cette page n'existe pas.</h1>";
break;
}
}
?>
<?php //require_once($_SERVER["DOCUMENT_ROOT"]."/inclusions/pied.php"); ?>
<script src="/fichiers/js/filtre.js"></script>
</div>