Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Chiffrement et positionnement d'images

5 réponses
Avatar
Seb
Bonjour à tous,



Je cherche à réaliser quelque chose d'inhabituel et je pense que
JavaScript serait bien adapté pour cet objectif. Je me permets de poster
sur le forum dans l'espoir que vous voudrez bien m'aider à évaluer la
pertinence de ce choix.

Je dispose d'une image (en fait, plusieurs centaines mais c'est secondaire
pour l'instant) en PNG; il s'agit de texte en niveau de gris. Pas de
fioriture, pas d'utilisation des capacités avancées du format PNG.
Un autre format, éventuellement plus simple, pourrait d'ailleurs faire
l'affaire.

J'aimerais transmettre au navigateur d'une part une version chiffrée
de l'image, d'autre part un code source HTML contenant du JavaScript sachant
déchiffrer l'image pour retrouver du PNG. L'étape de déchiffrement se
fait après obtention (par le code JavaScript, sans intervention manuelle de
l'utilisateur) d'une clef de session demandée à un site web.
L'objectif visé est de faire en sorte que si l'utilisateur sauvegarde
la page web, il ne sauvegarde que du HTML et des images chiffrées
qui ne lui serviront à rien sans la clef de session -- qui, elle, ne peut
être ni enregistrée, ni récupérée une deuxième fois.

Voici mes questions:

* Un code JavaScript est-il autorisé à écrire dans un fichier temporaire, sur
le disque dur de l'utilisateur, si possible de manière indépendante de l'OS ?
(Note: je sais que cela pourra permettre à l'utilisateur débrouillard de
récupérer les fichiers temporaires, donc l'image, mais en l'espèce ce n'est
pas un problème.)

* Un code JavaScript peut-il se connecter à un site web pour récupérer
un fichier ?
(En l'occurrence, il s'agirait d'un fichier texte contenant seulement la clef
de session.)

* Existe-t-il une bibliothèque déjà prête qui permettrait à un code JavaScript
d'afficher une image PNG dans le navigateur si cette image n'est connue
que comme une chaîne de caractères stockée dans une variable ?
(Idée: puisque l'image est en niveaux de gris, cela reviendrait
schématiquement à dire: aller à tel pixel, afficher du gris de niveau X,
passer au pixel suivant, etc.)

* Le schéma précédent permettrait-il d'afficher une image dont la hauteur
serait (très) supérieure à celle de la fenêtre du navigateur ?

* JavaScript est-il capable de désactiver de manière fiable la fonction
Fichier->Imprimer de n'importe quel navigateur, y compris IE, Mozilla/Firefox
et Opera ?


Je vous remercie d'avance pour tout élément de réponse à n'importe laquelle
des questions. Ce projet compte beaucoup pour moi, j'espère avoir pu commencer
à vous y intéresser. Je serai ravi de donner davantage de contexte si vous
le souhaitez.


Amicalement,
Sébastien.

5 réponses

Avatar
Pierre Goiffon
"Seb" a écrit dans le message de
news:
Je dispose d'une image (en fait, plusieurs centaines mais c'est
secondaire pour l'instant) en PNG; il s'agit de texte en niveau de
gris. Pas de fioriture, pas d'utilisation des capacités avancées du
format PNG.
Un autre format, éventuellement plus simple, pourrait d'ailleurs faire
l'affaire.

J'aimerais transmettre au navigateur d'une part une version chiffrée
de l'image, d'autre part un code source HTML contenant du JavaScript
sachant déchiffrer l'image pour retrouver du PNG. L'étape de
déchiffrement se
fait après obtention (par le code JavaScript, sans intervention
manuelle de l'utilisateur) d'une clef de session demandée à un site
web.
L'objectif visé est de faire en sorte que si l'utilisateur sauvegarde
la page web, il ne sauvegarde que du HTML et des images chiffrées
qui ne lui serviront à rien sans la clef de session -- qui, elle, ne
peut être ni enregistrée, ni récupérée une deuxième fois.


JavaScript ne sera pas suffisant. Par contre, du Java ou de l'ActiveX
conviendraient très bien. A noter que ce genre de systèmes existent depuis
longtemps !
Par contre évidemment, c'est beaucoup d'efforts pour une protection quasi
nulle, une simple copie d'écran ne pouvant que difficilement être contourné.
Non, la vraie question est pourquoi protéger des images mises à disposition
libre ?
Bref, il y a eu des fils et des fils de débat sur le sujet. En attendant, la
seule solution à peu près satisfaisante est de laisser en ligne des versions
dégradées (plus petites, moins bonne qualité, ... au choix) accompagnées
éventuellement d'un filigrane avec le copyright. Retraiter un lot d'image
comme cela est relativement facile en utilisant des librairies graphiques
qui vont bien, ou avec un logiciel de retouche acceptant les macros.

Avatar
Olivier
Seb wrote in
news::

Bonjour à tous,
[...]

Voici mes questions:

* Un code JavaScript est-il autorisé à écrire dans un fichier
temporaire, sur le disque dur de l'utilisateur, si possible de manière
indépendante de l'OS ? (Note: je sais que cela pourra permettre à
l'utilisateur débrouillard de récupérer les fichiers temporaires, donc
l'image, mais en l'espèce ce n'est pas un problème.)

* Un code JavaScript peut-il se connecter à un site web pour récupérer
un fichier ?
(En l'occurrence, il s'agirait d'un fichier texte contenant seulement
la clef de session.)

* Existe-t-il une bibliothèque déjà prête qui permettrait à un code
JavaScript d'afficher une image PNG dans le navigateur si cette image
n'est connue que comme une chaîne de caractères stockée dans une
variable ? (Idée: puisque l'image est en niveaux de gris, cela
reviendrait schématiquement à dire: aller à tel pixel, afficher du
gris de niveau X, passer au pixel suivant, etc.)

* Le schéma précédent permettrait-il d'afficher une image dont la
hauteur serait (très) supérieure à celle de la fenêtre du navigateur ?

* JavaScript est-il capable de désactiver de manière fiable la
fonction Fichier->Imprimer de n'importe quel navigateur, y compris IE,
Mozilla/Firefox et Opera ?


Je vous remercie d'avance pour tout élément de réponse à n'importe
laquelle des questions. Ce projet compte beaucoup pour moi, j'espère
avoir pu commencer à vous y intéresser. Je serai ravi de donner
davantage de contexte si vous le souhaitez.


Amicalement,
Sébastien.



Salut,

Pour récupérer des données en utilisant JavaScript, tu peux utiliser
l'ActiveX nommé XMLHTTP (qui ne déclenche aucune alerte de sécurité,
donc c'est transparent pour l'utilisateur), en faisant comme suit :

<script>

xml = new ActiveXObject("Microsoft.XMLHTTP");
xml.Open("GET", "http://www.monsite.fr/maClef.txt", false);
xml.Send();
data = xml.responseText;
document.write("La clef est : "+data);

</script>

Et voilà un peu de doc (en anglais) :
http://www.4guysfromrolla.com/webtech/110100-1.shtml
http://www.devx.com/getHelpOn/10MinuteSolution/20358



Sinon je pensais à un autre truc, bcp plus "bricolage" :
tu affiche une image du serveur, et en javascript tu récupères sa
largeur+hauteur, ce qui te donne ta clef ...
Pour que l'utilisateur ne voie rien, tu peux la placer en dehors de
l'écran : <img id=MaClef src="MonImageDynamik.php"
style="position:absolute; left:-1000px; top:-1000px;">
Et pour récupérer la largeur/hauteur :
alert(MaClef.offsetWidth);
alert(MaClef.offsetHeight);
Mais bon, c'est ... du bricolage !

Voili voilou, bonne chance à toi :)
O.L.

Avatar
dark poulpo
"Olivier" a écrit dans le message news:

Seb wrote in
news::



Salut,

Pour récupérer des données en utilisant JavaScript, tu peux utiliser
l'ActiveX nommé XMLHTTP (qui ne déclenche aucune alerte de sécurité,
donc c'est transparent pour l'utilisateur), en faisant comme suit :

<script>

xml = new ActiveXObject("Microsoft.XMLHTTP");
xml.Open("GET", "http://www.monsite.fr/maClef.txt", false);
xml.Send();
data = xml.responseText;
document.write("La clef est : "+data);

</script>

Et voilà un peu de doc (en anglais) :
http://www.4guysfromrolla.com/webtech/110100-1.shtml
http://www.devx.com/getHelpOn/10MinuteSolution/20358



Sinon je pensais à un autre truc, bcp plus "bricolage" :
tu affiche une image du serveur, et en javascript tu récupères sa
largeur+hauteur, ce qui te donne ta clef ...
Pour que l'utilisateur ne voie rien, tu peux la placer en dehors de
l'écran : <img id=MaClef src="MonImageDynamik.php"
style="position:absolute; left:-1000px; top:-1000px;">
Et pour récupérer la largeur/hauteur :
alert(MaClef.offsetWidth);
alert(MaClef.offsetHeight);
Mais bon, c'est ... du bricolage !

Voili voilou, bonne chance à toi :)
O.L.



le probleme est que si il fait dans la barre d'adresse
javascript:alert(MaClef.offsetWidth + MaClef.offsetHeight);
// je sais pas si il fo mettre document devant ou pas, je suis pas expert
en js

et bien ta protection est foutu

Avatar
moi moi
"dark poulpo" wrote in
news:cfcmvh$cm7$ :

"Olivier" a écrit dans le message
news:
Seb wrote in
news::



Salut,

Pour récupérer des données en utilisant JavaScript, tu peux utiliser
l'ActiveX nommé XMLHTTP (qui ne déclenche aucune alerte de sécurité,
donc c'est transparent pour l'utilisateur), en faisant comme suit :

<script>

xml = new ActiveXObject("Microsoft.XMLHTTP");
xml.Open("GET", "http://www.monsite.fr/maClef.txt", false);
xml.Send();
data = xml.responseText;
document.write("La clef est : "+data);

</script>

Et voilà un peu de doc (en anglais) :
http://www.4guysfromrolla.com/webtech/110100-1.shtml
http://www.devx.com/getHelpOn/10MinuteSolution/20358



Sinon je pensais à un autre truc, bcp plus "bricolage" :
tu affiche une image du serveur, et en javascript tu récupères sa
largeur+hauteur, ce qui te donne ta clef ...
Pour que l'utilisateur ne voie rien, tu peux la placer en dehors de
l'écran : <img id=MaClef src="MonImageDynamik.php"
style="position:absolute; left:-1000px; top:-1000px;">
Et pour récupérer la largeur/hauteur :
alert(MaClef.offsetWidth);
alert(MaClef.offsetHeight);
Mais bon, c'est ... du bricolage !

Voili voilou, bonne chance à toi :)
O.L.



le probleme est que si il fait dans la barre d'adresse
javascript:alert(MaClef.offsetWidth + MaClef.offsetHeight);
// je sais pas si il fo mettre document devant ou pas, je suis pas
expert
en js

et bien ta protection est foutu






Sauf si il fait, dans son script, après avoir récup la clé :
MaClef.width = 0; MaClef.height = 0;
et LeTexteDeMaCle = "";

Na !

Mais tant que c'est pas côté serveur, l'user peut tout faire ...

@+
O.L.


Avatar
pierre.levy
"Seb" a écrit dans le message de news:

Bonjour à tous,



Je cherche à réaliser quelque chose d'inhabituel et je pense que
JavaScript serait bien adapté pour cet objectif. Je me permets de poster
sur le forum dans l'espoir que vous voudrez bien m'aider à évaluer la
pertinence de ce choix.

Je dispose d'une image (en fait, plusieurs centaines mais c'est secondaire
pour l'instant) en PNG; il s'agit de texte en niveau de gris. Pas de
fioriture, pas d'utilisation des capacités avancées du format PNG.
Un autre format, éventuellement plus simple, pourrait d'ailleurs faire
l'affaire.

J'aimerais transmettre au navigateur d'une part une version chiffrée
de l'image, d'autre part un code source HTML contenant du JavaScript
sachant

déchiffrer l'image pour retrouver du PNG. L'étape de déchiffrement se
fait après obtention (par le code JavaScript, sans intervention manuelle
de

l'utilisateur) d'une clef de session demandée à un site web.
L'objectif visé est de faire en sorte que si l'utilisateur sauvegarde
la page web, il ne sauvegarde que du HTML et des images chiffrées
qui ne lui serviront à rien sans la clef de session -- qui, elle, ne peut
être ni enregistrée, ni récupérée une deuxième fois.

Voici mes questions:

* Un code JavaScript est-il autorisé à écrire dans un fichier temporaire,
sur

le disque dur de l'utilisateur, si possible de manière indépendante de
l'OS ?

(Note: je sais que cela pourra permettre à l'utilisateur débrouillard de
récupérer les fichiers temporaires, donc l'image, mais en l'espèce ce
n'est

pas un problème.)

* Un code JavaScript peut-il se connecter à un site web pour récupérer
un fichier ?
(En l'occurrence, il s'agirait d'un fichier texte contenant seulement la
clef

de session.)

* Existe-t-il une bibliothèque déjà prête qui permettrait à un code
JavaScript

d'afficher une image PNG dans le navigateur si cette image n'est connue
que comme une chaîne de caractères stockée dans une variable ?
(Idée: puisque l'image est en niveaux de gris, cela reviendrait
schématiquement à dire: aller à tel pixel, afficher du gris de niveau X,
passer au pixel suivant, etc.)

* Le schéma précédent permettrait-il d'afficher une image dont la hauteur
serait (très) supérieure à celle de la fenêtre du navigateur ?

* JavaScript est-il capable de désactiver de manière fiable la fonction
Fichier->Imprimer de n'importe quel navigateur, y compris IE,
Mozilla/Firefox

et Opera ?


Je vous remercie d'avance pour tout élément de réponse à n'importe
laquelle

des questions. Ce projet compte beaucoup pour moi, j'espère avoir pu
commencer

à vous y intéresser. Je serai ravi de donner davantage de contexte si vous
le souhaitez.


Amicalement,
Sébastien.



Salut,
Java est plus indiqué, mais si tu veut du JavaScript voici un exemple
http://www.246.dk/xbm.html .
Fonctionne sous IE & Netscape, les autres ?
Format d'image xbm donc noir et blanc, on peut faire un genre de niveau de
gris avec des trames, pour du texte cela devrait aller.
Le problème c'est la lenteur du script pour un grande image. Pas moyen de
désactiver la touche PrintScreen.