[abandon] Balise BBCode texte sensible / encodage mails

Problèmes, bugs et difficultés rencontrés sur le site.
Avatar du membre
leosw
Messages : 539
Enregistré le : 28 févr. 2013, 17:28
Localisation : Montagne noire

Message par leosw »

Re,

Je viens de trouver les deux fonctions PHP magiques, qui font ça en une ligne :

http://www.php.net/manual/fr/function.bin2hex.php
http://www.php.net/manual/fr/function.hex2bin.php

Alors, Heureux ?

Moi ouais !
Avatar du membre
sly
Messages : 5041
Enregistré le : 29 févr. 2004, 17:59
Localisation : Chambéry - Savoie

Re: Balise BBCode texte sensible.

Message par sly »

yo !
OpenSourceWay a écrit : À la même manière de votre balise BBCode pour les liens interne avec [->XX], j'aimerais ajouter une balise [sensible][/sensible], l'idée est toute simple :
Avant de parler technique et du comment on va faire, revenons en aux bases :
1- pourquoi faire
2- pour quelle données le faire
3- à quelle complexité le faire
4- inconvénients

1) Le but, on est d'accord, c'est de permettre à un humain de lire une info sensible, en évitant qu'un logiciel puisse la collecter, par exemple, en convertissant en image un texte comme une email.
2) à part les emails à cause des robots collecteurs pour les spammeurs je vois rien d'autre qui mérite un tel traitement (les numéros de téléphones éventuellement, et encore, les spammeurs téléphoniques passent par ailleurs bien souvent)
3) demander à tout le monde de mettre [sensible]mon@email[/sensible] me semble un peu pénible, et ça ne serait pas rétro-actif pour les emails déjà rentrées. Une solution qui vise à détecter une email dans le texte me semble plus simple, comme c'est le cas pour la détection d'une adresse web qui se transforme en lien (et garder le code [sensible][/sensible] pour les cas où seul un humain sait qu'il voudrait réduire les risques qu'un robot ne passe par là)

4) et là, ça me chagrine un peu, il faudrait mesurer la balance inconvénients/risques : Certains ont vraiment des adresses email à rallonge et devoir recopier "comme un con" son email me semble assez pénible. Coté risque, les robots collecteurs d'email sur le web se sont pas mal calmés grâce à la technique des http://en.wikipedia.org/wiki/Spamtrap

En clair, je suis mitigé.
Un fichier txttoimg.php lit le paramètre envoyé ?txt= (...) Ensuite la fonction bbcode2html remplacera simplement les (...) donc il faut s'inventer un code de cryptage décryptage. (...)
Vous en pensez quoi vous ?
Je vois bien en quoi c'est plus simple à coder ainsi, mais d'avoir a passer dans la page web (même cryptée) le code texte à transformer en image alors que l'info est dans notre base ça me perturbe. Ce serait pas plus simple de le mettre dans la session ? Et ne donner à ton txttoimg.php juste l'uuid du texte à cacher ?
Modifié en dernier par sly le 06 avr. 2013, 15:02, modifié 1 fois.
Avatar du membre
leosw
Messages : 539
Enregistré le : 28 févr. 2013, 17:28
Localisation : Montagne noire

Message par leosw »

Lut !

1. Pour le but, je pense que l'on est d'accord, en effet.
2. Je pensais aux fiches, uniquement le contenu des fiches, et pour les téléphones et les adresses mails.
3. En effet, une auto-détection des adresses email au format xxx@xxx.xxx est possible (exemple sous les yeux), c'est même une bonne idée à mes yeux.
4. L'autre solution, si le fait de copier une image est effectivement fatigant, peut-être de découper la chaîne entre les balises sensibles en 4, d'envoyer la chaîne découpée en 4 dans le code source de la page, et de concaténer ces 4 morceaux de chaînes en un via javascript.
Seulement, il faut garder la solution txttoimg pour les navigateurs sans javascript.

Description technique de la seconde solution :

On entre en bbcode ça :

Code : Tout sélectionner

[sensible]tatetito[/sensible]
Et à la sortie on a ça :

Code : Tout sélectionner

<img id="sensible1" src="texttoimg.php?txt=746174657469746f"><span id="sensible1txt"></span>
<script>
var txt1="ta";
var txt2="te";
var txt3="ti";
var txt4="to";
document.getElementById&#40;"sensible1"&#41;.style.display="none";
document.getElementById&#40;"sensible1txt"&#41;.innerHTML=txt1+txt2+txt3+txt4;
</script>
Inconvénients : C'est lourd en code, il faut numéroter les Id, découper en 4 c'est pas si facile, ça fait du trafic en plus lors de l'affichage de la page.
Avantages : Compatible JS et Non-JS. Si JS activé, je copier coller marche.

Si vous pensez que je vais trop loin et que je ferais mieux d'abandonner, dites-le…

Léo
Avatar du membre
sly
Messages : 5041
Enregistré le : 29 févr. 2004, 17:59
Localisation : Chambéry - Savoie

Message par sly »

OpenSourceWay a écrit : Description technique de la seconde solution :
Techniquement, ça a de la gueule ! ça gère tous les cas et ça doit pouvoir le faire...
Si vous pensez que je vais trop loin et que je ferais mieux d'abandonner, dites-le…
Je propose de rester en attente là dessus, histoire que dominique ou yip ou d'autres nous donne leurs avis en comparant avantages et inconvénients


ps: je passe le titre en mc proposition afin que cette proposition ne soit pas oubliée dans le fond du classement ;-)
Avatar du membre
Dominique
Messages : 3704
Enregistré le : 08 avr. 2006, 21:58

Message par Dominique »

sly a écrit :Je propose de rester en attente là dessus, histoire que dominique ou yip ou d'autres nous donne leurs avis en comparant avantages et inconvénients
Je pensais à un cryptage en PHP plus ou moins compliqué avec un JS maison pour le décortiquer localement
... à moins que les bots n'émulent le JS ?
Il me semble que le click sous la vignette "Utiliser le fond de carte SwissTopo" a fait fortement chuter les quotas (bouffés par les bots ?)
Avatar du membre
leosw
Messages : 539
Enregistré le : 28 févr. 2013, 17:28
Localisation : Montagne noire

Message par leosw »

À ma connaissance, les bots n'émulent pas JavaScript, Il existe bon nombre de personne recourant à Javascript pour recoller une adresse mail (nom et hote).

Après, il faut dire que je me sers de WRI comme terrain d’entraînement, ça me permet d'apprendre JavaScript, tout en observant et corrigeant les bugs dont je suis à l'origine.

Enfin, je cherche encore plus simple que dans mon message précédent.
Avatar du membre
Dominique
Messages : 3704
Enregistré le : 08 avr. 2006, 21:58

Message par Dominique »

Quelques pistes : http://assiste.com.free.fr/p/spam/comme ... ite.html#5
Par contre, je rebute un peu à prendre un tel code tout cru d'un site de hackers
- s'il est public et beaucoup utilisé, les bots l'ont peut être intégré
- c'est peut être lui même un troyen :blue:
Quand j'aurai un peu de temps, j'essayerai d'en faire un maison
Avatar du membre
Claude Mauguier
Messages : 4233
Enregistré le : 16 févr. 2005, 01:00
Localisation : Isére

Message par Claude Mauguier »

Dominique a écrit : ... à moins que les bots n'émulent le JS ?
Il me semble que le click sous la vignette "Utiliser le fond de carte SwissTopo" a fait fortement chuter les quotas (bouffés par les bots ?)
J'interviens en naïf de service, mais ta remarque a fait "tilt"
1 - le premier effet (faire chuter les quotas) serait donc positif pour nous, vis à vis de Swisstopo ; ce qui amène la question suivante :

2 -ainsi que le quidam lambda comme mézigue utilise bien des antiviraux de base, du genre Avira et autres, et à moins qu'un hacker ne s'acharne sur WRI (on se demande bien pourquoi), nous n'avons pas de parade "systémique" contre les robots ? :shock:
Avatar du membre
Dominique
Messages : 3704
Enregistré le : 08 avr. 2006, 21:58

Message par Dominique »

Claude Mauguier a écrit :2 -ainsi que le quidam lambda comme mézigue utilise bien des antiviraux de base, du genre Avira et autres, et à moins qu'un hacker ne s'acharne sur WRI (on se demande bien pourquoi), nous n'avons pas de parade "systémique" contre les robots ? :shock:
Ces robots (googleBot en premier) scannent les serveurs (comme le ferait n'importe quel internaute) pour en tirer toutes les informations qu'il jugent utiles
Ils n'interfèrent pas avec ton PC local
Avatar du membre
Claude Mauguier
Messages : 4233
Enregistré le : 16 févr. 2005, 01:00
Localisation : Isére

Message par Claude Mauguier »

Donc ils font le boulot en amont... Danke schön ! :wink:
Avatar du membre
Dominique
Messages : 3704
Enregistré le : 08 avr. 2006, 21:58

Message par Dominique »

Dominique a écrit :Quand j'aurai un peu de temps, j'essayerai d'en faire un maison
Une grosse tempête, et un peu de temps libre donne ceci: http://dom.refuges.info/mail.php
Le cryptage est des plus basiques et lire ou émuler le JS suffit à récupérer l'adresse, mais ça devrait berner les bots qui ne l'émulent pas
Par contre, si ce concept te va, je te laisse l'intégrer au BBcode

Note: on devrait pouvoir se passer de balise et détecter "/\[email\](.+?)\[\/email\]/"
Sur le même principe, tu devrais pouvoir faire ta balise [sensible]
Avatar du membre
leosw
Messages : 539
Enregistré le : 28 févr. 2013, 17:28
Localisation : Montagne noire

Message par leosw »

Salut,

En fait moi j'y vois encore un soucis : si t'as pas JavaScript activé, t'es grillé.

Après, pour la détection, l'avantage est pour les novices qui ne connaissent pas l’existence de la balise sensible, on peux utiliser le script de détection déjà existant.

Est-ce que tu pense que c'est possible rapidement de crypter une email en PHP dans ton format (que je n'ai absolument pas compris).

Une autre solution pour encore plus de sécurité est de détecter si le client est Java et de masquer la donnée dans ce cas là.

Léo
Avatar du membre
Dominique
Messages : 3704
Enregistré le : 08 avr. 2006, 21:58

Message par Dominique »

OpenSourceWay a écrit :En fait moi j'y vois encore un soucis : si t'as pas JavaScript activé, t'es grillé.
Remarque, si t'as pas JS, tu ne verras pas grand chose du grand WEB et encore moins de WRI (pas les cartes en tout cas), alors tant pis pour les mails
Est-ce que tu penses que c'est possible rapidement de crypter une email en PHP dans ton format (que je n'ai absolument pas compris)
Justement, c'est ce que fait mon code (mais au niveau du serveur): http://dom.refuges.info/mail.php.txt
Mais, pour des raisons de sécurité, je ne tiens pas à donner beaucoup d'indications.
Note qu'à aucun moment le texte de l'adresse mail n’apparaît en ligne ni dans l'explorateur (essaye de faire copier/coller de l'adresse mail dans http://dom.refuges.info/mail.php par exemple)
Avatar du membre
leosw
Messages : 539
Enregistré le : 28 févr. 2013, 17:28
Localisation : Montagne noire

Message par leosw »

Mouais, j'ai toujours pas compris :)

Enfin c'est de ça que je parlais. Je ne pense pas que tu ais à avoir peur, les robots ne sont pas encore doté d'intelligence pour interpréter tes posts.

Est-ce que le CSS est primordial ? Plutôt dois-je faire des modifs sur le CSS ? Ou non ?

Léo
Avatar du membre
yip
Messages : 387
Enregistré le : 08 mars 2004, 23:32

Message par yip »

Euh,

-- encodage/decodage --
le bin2hex/hex2bin de leo me parait bien, il evite de gerer les ID puisque l'information est deja dans l'URL du text2img. clair qu'il faut eviter de trimballer un ID ou grosse usine en perspective...

Si c'est pas assez secure, il y a aussi le openssl_encrypt()/openssl_decrypt(), avec une clef "WRI" par exemple. la clef est inconnue du JS, donc c'est secure. Avec un algo ultra simple qui genere de l'ascii (pas de clef longueur 1024 bits ;) )

ou hash_hmac() qui a l'air de jouer dans la meme categorie

uuencode/uudecode, ou base64, suffit peut etre, faut vraiment tomber sur un cracker qui n'a vraiment rien de mieux a faire de ses journées que hacker WRI, pour passer son temps a uudecoder des URL...... Et si ça arrive, il y a surement d'autres backdoor, on a pas la protection du FBI non plus ;)

-- text2img --
Tu pensais a quelle façon de faire leo ? Il y a biensur la vieille lib graphique GD de PHP, genre imagefttext() qui ecrit du texte dans une image, mais ca reste une image PNG/GIF/JPG ce qui est un peu lourdingue...
il y a aussi l'image SVG:

Code : Tout sélectionner

<svg>
    <text x="20" y="40">le_mail@secretFSB.ru</text>
</svg>
Vu du client, c'est une image comme une PNG, avec un peu de chance elle est zippée avant d'être envoyée, ce qui la rends plus secure (les robots qui dezippent les images pour les analyser sont vraiment des tordus)
-- JS --
Embrouiller la chaine dans une manip de regex en JS comme l'a fait Dom, ca parait pas mal aussi, d'accord avec Dominique, JS est devenu obligatoire. si il y a un blanc a la place, tant pis

-- script detection --
Excellente idée, comme ça, la donnée elle-même est propre, un simple regex devrait faire l'affaire ?

le CSS ? ya une possibilité par là ?

Integrer le bouzin en BBcode, ca me gêne un peu.
Actuellement, si je me trompe pas, la donnée en base, c'est du texte avec une couche de BBcode standard, rien de plus, en particulier rien de WRI en plus ?
En exagérant, ajouter une balise maison revient a rendre notre donnée non standard.
On a déja pas mal de trucs qui ne sont déjà plus standard, si on peut eviter d'en faire un de plus ...
A contrario, l'auto-détection gere le truc dans la phase traitement, et pas dans le stockage de la donnée, pas besoin d'une balise speciale pour reconnaitre un mail, et les exports sont simplifiés. Inconvenient, pas moyen de rendre "sensible" autre chose qu'une regex generique(genre mail) mais en as t on besoin ?
(Enfin l'inverse peut surement se defendre aussi ;) )