Bonjour,

Ayant pas mal galéré pour déclaré ma politique P3P (cf Opquast
J'ai constaté en cherchant sur les moteurs de recherche qu'il n'existait pas de tutoriel sur comment faire une déclaration P3P ...
J'espère ainsi combler un manque Smiley cligne

Il convient de souligner que cette déclaration est celle renvoyée par le serveur, et accessible aux internautes s'ils regardent le fichier p3p.xml. Néammoins il est important de mettre à disposition des internautes une page d'accès à cette politique au sein même de vos pages informatives.

===================

Ilconvient tout d'abord de créer un répertoire w3c à la racine de son site. Si d'autres emplacement sont possibles, il est vivement conseillé de respecter cet emplacement notoire, tel que définit par le W3C - cf traduction française de spécification de la plateforme pour les préférences de confidentialité

Il faut ensuite créer le fichier p3p.xml :

<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet href="./p3p.xsl" type="text/xsl"?>
<META xmlns="http://www.w3.org/2000/12/P3Pv1">
	<POLICY-REFERENCES>
		<EXPIRY max-age="604800"/>
		<POLICY-REF about="#sitepolicy">
			<INCLUDE>/*</INCLUDE>
		</POLICY-REF>
	</POLICY-REFERENCES>
	<POLICIES>
		<POLICY name="sitepolicy" discuri="url contenant la déclaration de confidentialité accessible au public">
			<ENTITY>
				<DATA-GROUP>
					<DATA ref="#business.name">Nom de domaine</DATA>
					<DATA ref="#business.contact-info.online.email">adresse e-mail, encodage en ASCII possible</DATA>
					<DATA ref="#business.contact-info.postal.country">Pays</DATA>
				</DATA-GROUP>
			</ENTITY>
			<ACCESS>
				<ident-contact/>
			</ACCESS>
		</POLICY> 
	</POLICIES>
</META>

Important : Il importe de respecter la casse dans les codes suivants Smiley cligne
Il est possible d'indiquer d'autres DATA que les 3 indiqués ci-dessus :

	<DATA ref="#business.contact-info.postal.street">Adresse postale</DATA>
	<DATA ref="#business.contact-info.postal.city">Ville</DATA>
	<DATA ref="#business.contact-info.postal.stateprov">Département</DATA>
	<DATA ref="#business.contact-info.postal.postalcode">Code postal</DATA>
	<DATA ref="#business.contact-info.telecom.telephone">Numéro de téléphone, en international : +33 (0) 000 000 000</DATA>

La ligne numéro 2 du fichier p3p.xml indique que le fichier p3p.xsl vient s'ajouter au contenu structurel du fichier xml ; p3p.xsl contient le contenu de votre déclaration de confidentialité :

<?xml version="1.0" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:p3p="http://www.w3.org/2000/12/P3Pv1" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="p3p">
<xsl:template match="/">
	<xsl:apply-templates select="p3p:META"/>
</xsl:template>
<xsl:template match="p3p:META">
	<html>
		<head>
		<title>Politique de protection de la vie privée</title>
			<link rel="stylesheet" href="p3p.css" type="text/css" />
			<link rel="P3Pv1" href="url contenant la déclaration de confidentialité accessible au public" />
		</head>
		<body>
		<h1>Politique de protection de la vie privée de Nom de domaine</h1>
			<xsl:apply-templates select="p3p: POLICIES"/>
			<xsl:apply-templates select="p3p: POLICIES/p3p: POLICY"/>
			<hr />
			<address>
				<a href="url de la page d'index de votre site">Nom de domaine</a> | <a href="url de la page de contact de votre site">Contact</a>
			</address>
		</body>
	</html>
</xsl:template>
<xsl:template match="p3p: POLICIES">
	<p>Ce fichier décrit la politique de protection de la vie privée de Nom de domaine</p>
</xsl:template>
<xsl:template match="p3p: POLICY">
	<h2 class="policy" id="{./@name}">Eléments de la politique de protection de la vie privée</h2>
		<xsl:variable name="refpath">#<xsl:value-of select="./@name"/></xsl:variable>
		<xsl:apply-templates select="//p3p: POLICY-REF[@about=$refpath]"/>
	<dl>
		<xsl:apply-templates select="p3p:ENTITY"/>
	</dl>
</xsl:template>
<xsl:template match="p3p: POLICY-REF">
		<!--Les déclarations suivantes ne le sont qu'à titre d'exemple, pour en savoir plus, il convient de préremplir la déclaration de l'OECD et de regarder le code source du fichier asp généré.-->
		<p>Vous pouvez accéder à notre page d'accueil et consulter notre site sans nous communiquer de données personnelles.</p>
		<p>Le formulaire d'inscription à la newsletter du site vous demande des données personnelles nécessaires pour pouvoir vous contacter et vous offrir le meilleur service possible. Nous nous engageons à protéger ces données et à ne pas les communiquer à une tierce personne, sauf si la loi nous l'autorisait.</p>
		<p>Conformément à la loi "Informatique et Libertés" du 6 janvier 1978, vous disposez d'un droit d'accès, de modification, de rectification et de suppression des données vous concernant. Vous pouvez pour celà nous contacter via notre page contact.</p>
		<p>Nom de domaine est enregistré à la <acronym title="Commission Nationale de l'Informatiue et des Libertés">CNIL</acronym> sous le numéro 0000000.</p>
</xsl:template>
<xsl:template match="p3p:ENTITY">
	   <xsl:apply-templates select="p3p:DATA-GROUP"/>
</xsl:template>
<xsl:template match="p3p:DATA-GROUP">
	<dl>
		<xsl:for-each select="p3p:DATA">
			<dd>
				<xsl:choose>
					<xsl:when test="./p3p:CATEGORIES">
						<xsl:for-each select="p3p:CATEGORIES/*">&quot;<xsl:value-of select="local-name()"/>&quot;</xsl:for-each>
					</xsl:when>
					<xsl:otherwise>
						<xsl:value-of select="."/>
					</xsl:otherwise>
				</xsl:choose>
			</dd>
		</xsl:for-each>
	</dl>
</xsl:template>
</xsl:stylesheet>

Le contenu de la déclaration étant réalisée, il convient de la mettre sommairement en forme, et de créer une feuille de style p3p.css (appellée en ligne 11 de p3p.xsl) :

body{
	color:#fff;
	background-color:#000;
	padding:10px;
	margin:2em auto 0 auto;
	width:760px;
	font:0.98em Arial, helvetican, sans-serif;
}
a{
	color:#fff;
	background-color:#000;
}
a :hover{
	text-decoration:none;
}
a :visited{
	text-decoration:line-through;
}


Votre déclaration P3P est maintenant terminée et il ne vous reste plus qu'à la soumettre au validateur du W3C : http://www.w3.org/P3P/validator.html


Nota : A cause de code smiley générant des Smiley langue , il a été nécessaire de rajouter des espaces entre : et P, il convient donc de supprimer l'espace dans

P3P: POLICY et P3P: POLICIES

Smiley biggrin
Modifié par Gunner4902 (17 Mar 2007 - 13:53)
Bonjour,

À propos de la proposition pour publication de ce tutoriel sur Alsacréations... déjà, merci de le proposer. Smiley smile
Cependant, je ne pense pas qu'il y ait sa place à l'heure actuelle. Les bases de XML (et sujets connexes) ne sont même pas abordées sur Alsacréations, et ton tutoriel en demande. Il serait donc quelque peu déplacé dans les tutoriels Alsa, il me semble.

Il doit probablement exister des sites de référence sur XML (ou plus spécifiquement XML pour le Web) qui accueilleraient ce tuto, non ?

Je laisse mes collègues corriger si je dis une bêtise... Smiley murf
Modérateur
Hello, Smiley smile

Je rajoute quand même qu'on apprécie la démarche. Smiley cligne

Les petits points qui me dérangeaient personnellement étaient que tu laisses le client faire la transformation. Ce n'est pas très recommendable si le but est de présenter ces informations à tes visiteurs, il faudrait ajouter un code de transformation côté serveur.

Par ailleurs, XML n'impose pas qu'on écrive ses balises en majuscules mais bien qu'on respecte la casse comme le dis une de tes phrases. C'est bien ce qui est définit dans le schema qui l'impose donc il faudrait le formuler autrement histoire que ça ne prête pas à confusion. Smiley smile
koala64 a écrit :
Hello, Smiley smile
Les petits points qui me dérangeaient personnellement étaient que tu laisses le client faire la transformation. Ce n'est pas très recommendable si le but est de présenter ces informations à tes visiteurs, il faudrait ajouter un code de transformation côté serveur.

Je suis bien d'accord avec toi, car celà permet tout et n'importe quoi, mais pour le moment, le P3P ne se fait que coté client, via des déclarations qui ont plus un rôle informatif qu'autre chose ... espérons que cette étape ne soit que la première de la démarche du P3P et non son aboutissement Smiley cligne
Modérateur
arf... Je ne suis pas sûr qu'on se soit compris. Smiley biggrin

J'entendais par là que tu dois être en mesure de créer une page (x)html à partir de tes fichiers xml et xsl et faisant la transformation côté serveur (via php par exemple). Ainsi, ce n'est pas au client de faire la transfo' pour montrer la page de présentation, ce qui te garantit une bonne interprétation. En revanche, l'affichage des données P3P se fait toujours à l'identique dans ton xml -> c'est bien toi qui les indique. Au passage, tu peux même, au sein du code php, vérifier la validité du code xml par rapport au schema xsd et du coup n'afficher ses informations dans la page xhtml que si le code xml est valide.

http://classes.scriptsphp.org/article.Transformations-XSLT-en-PHP-5
http://www.laltruiste.com/document.php?url=http://www.laltruiste.com/coursphp/domxml_validation.html
Modifié par koala64 (19 Mar 2007 - 11:23)
koala64 a écrit :
arf... Je ne suis pas sûr qu'on se soit compris. Smiley biggrin

Effectivement Smiley cligne
Par contre il est intéressant de savoir comment on fait sans qu'un langage fasse un code à notre place, celà sert notamment à ceux qui ont des sites ne pouvant pas supporter les langages serveurs Smiley cligne ... et pour les autres de savoir ce qui se cache derrière Smiley ravi