From e1f567479d3c985fd70c05c76b4c0529b41d5408 Mon Sep 17 00:00:00 2001
From: "cedric@yterium.com" <>
Date: Wed, 27 Jul 2011 21:12:46 +0000
Subject: [PATCH] Upload d'un svg : remplacer le test sur le statut auteur par
 un appel a autoriser(televerser,script) qui peut etre deroge dans un cron +
 ref biblio sur la purification SVG

Par ailleurs, si on sanitize SVG pour eviter les scripts quand l'auteur n'est pas de confiance, il faut en faire autant sur du HTML
=> sanitization du HMTL sur le meme principe, dans les memes conditions

(bruno, emmanuel)
---
 .gitattributes    |  1 +
 metadata/html.php | 38 ++++++++++++++++++++++++++++++++++++++
 metadata/svg.php  |  8 ++++++--
 plugin.xml        |  2 +-
 4 files changed, 46 insertions(+), 3 deletions(-)
 create mode 100644 metadata/html.php

diff --git a/.gitattributes b/.gitattributes
index e0d56c6d..91e93c77 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -105,6 +105,7 @@ lang/medias_zh.php -text
 /medias_fonctions.php -text
 /medias_pipelines.php -text
 metadata/flv.php -text
+metadata/html.php -text
 metadata/image.php -text
 metadata/svg.php -text
 metadata/swf.php -text
diff --git a/metadata/html.php b/metadata/html.php
new file mode 100644
index 00000000..8ca884b6
--- /dev/null
+++ b/metadata/html.php
@@ -0,0 +1,38 @@
+<?php
+
+/***************************************************************************\
+ *  SPIP, Systeme de publication pour l'internet                           *
+ *                                                                         *
+ *  Copyright (c) 2001-2011                                                *
+ *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
+ *                                                                         *
+ *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
+ *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
+\***************************************************************************/
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+include_spip('inc/autoriser');
+
+/**
+ * enlever les scripts de html si necessaire
+ * on utilise safehtml
+ *
+ * @param string $file
+ * @return array
+ */
+function medata_html_dist($file){
+	$meta = array();
+
+	// Securite si pas autorise : virer les scripts et les references externes
+	// sauf si on est en mode javascript 'ok' (1), cf. inc_version
+	if ($GLOBALS['filtrer_javascript'] < 1
+	  AND !autoriser('televerser','script')) {
+		$texte = spip_file_get_contents($file);
+		include_spip('inc/texte');
+		$new = trim(safehtml($texte));
+		// petit bug safehtml
+		if ($new != $texte) ecrire_fichier($file, $new);
+	}
+	
+	return $meta;
+}
\ No newline at end of file
diff --git a/metadata/svg.php b/metadata/svg.php
index 022233d1..0071e126 100644
--- a/metadata/svg.php
+++ b/metadata/svg.php
@@ -11,9 +11,13 @@
 \***************************************************************************/
 
 if (!defined('_ECRIRE_INC_VERSION')) return;
+include_spip('inc/autoriser');
 
 /**
  * Determiner les dimensions d'un svg, et enlever ses scripts si necessaire
+ * on utilise safehtml qui n'est pas apropriee pour ca en attendant mieux
+ * cf http://www.slideshare.net/x00mario/the-image-that-called-me
+ * http://heideri.ch/svgpurifier/SVGPurifier/index.php
  *
  * @param string $file
  * @return array
@@ -24,10 +28,10 @@ function medata_svg_dist($file){
 
 	$texte = spip_file_get_contents($file);
 
-	// Securite si pas admin : virer les scripts et les references externes
+	// Securite si pas autorise : virer les scripts et les references externes
 	// sauf si on est en mode javascript 'ok' (1), cf. inc_version
 	if ($GLOBALS['filtrer_javascript'] < 1
-	AND $GLOBALS['visiteur_session']['statut'] != '0minirezo') {
+	  AND !autoriser('televerser','script')) {
 		include_spip('inc/texte');
 		$new = trim(safehtml($texte));
 		// petit bug safehtml
diff --git a/plugin.xml b/plugin.xml
index dbab03dc..ceb242f7 100644
--- a/plugin.xml
+++ b/plugin.xml
@@ -2,7 +2,7 @@
 	<nom>Medias</nom>
 	<auteur>Collectif SPIP, Cedric Morin &amp; Romy Duhem-Verdiere pour la mediatheque</auteur>
 	<icon>prive/themes/spip/images/portfolio-32.png</icon>
-	<version>2.0.5</version>
+	<version>2.1.0</version>
 	<version_base>0.14.0</version_base>
 	<etat>test</etat>
 	<slogan>Gestion des medias dans SPIP</slogan>
-- 
GitLab