summaryrefslogtreecommitdiff
path: root/controller/Security.php
diff options
context:
space:
mode:
authorpolo <ordipolo@gmx.fr>2021-11-26 04:29:10 +0100
committerpolo <ordipolo@gmx.fr>2021-11-26 04:29:10 +0100
commitb97a68343ec5c4ff1fae25ff5dc41f1a2ce6a17f (patch)
tree528ec98f86a61b492d7ebce61486647f633b1f42 /controller/Security.php
parentcdf1bda847edd3e22e9fe817a802219ad8e0f626 (diff)
downloadmelaine-b97a68343ec5c4ff1fae25ff5dc41f1a2ce6a17f.zip
disco modif/suppr désordre
Diffstat (limited to 'controller/Security.php')
-rw-r--r--controller/Security.php23
1 files changed, 23 insertions, 0 deletions
diff --git a/controller/Security.php b/controller/Security.php
new file mode 100644
index 0000000..98d2e74
--- /dev/null
+++ b/controller/Security.php
@@ -0,0 +1,23 @@
1<?php
2// controller/Security.php
3
4// sécurité faille XSS avec htmLawed
5require('lib/htmlawed/htmLawed.php');
6
7class Security // toute statique, inutile de l'instancier
8{
9 private static $configHtmLawed = array(
10 'safe'=>1, // protection contre les élements et attributs dangereux
11 'elements'=>'h2, h3, h4, p, br, span, i, strong, u, mark, blockquote, li, ol, ul, a, figure, hr, img, figcaption, table, tbody, tr, td', // paramètre optionnel: les balises non indiquées sont supprimées
12 'deny_attribute'=>'id', // gêner le JS hostile
13 // on garde 'class' et 'style' utilisés par le ckediteur
14 );
15 private static $specHtmLawed = ''; // optionnel: faire qu'un certain élément puisse n'avoir que certains attributs
16
17 public static function secureString($chaine)
18 {
19 $chaine = htmLawed($chaine, self::$configHtmLawed, self::$specHtmLawed);
20 $chaine = trim($chaine); // supprimer espaces, tabulations et sauts de ligne en début et fin de chaine (pour l'entrée de l'éditeur)
21 return $chaine;
22 }
23}