keul.fr - du web et du code

Aller au contenu | Aller au menu | Aller à la recherche

Publicité: Installez Adblock Plus!

mardi, 17 janvier 2012

Vous aimez spammer?

Si vous êtes tombé sur cette page parce qu'on vous a donné un lien, c'est que vous avez fait fait une grosse erreur: vous avez envoyé du SPAM, généralement appelé "courrier indésirable". Pour les autres, ça sera de la prévention.

Afin de ne plus recommencer, suivez ces conseils:
  • Si vous envoyez un e-mail à une seule personne, il n'y a généralement pas de problèmes, vous contactez la personne pour une raison précise et elle a donc de forte chance d'être intéressée.
  • Si vous envoyez un e-mail à plusieurs personnes, vous risquez très fortement d'envoyer un spam. Tournez donc votre mulot trois fois autour du clavier et posez-vous la question suivante : Suis-je sûr que TOUS les destinataires désirent recevoir cet e-mail?
La règle d'or est de RÉFLÉCHIR. Ne faites pas CONFIANCE, les ragots et arnaques sont monnaie courante et un peu de bon sens suffit à les éviter.

Une petite aide :
  • Si vous voulez envoyez une blague (à plusieurs personnes), c'est généralement du spam.
  • Si vous voulez envoyer une combine pour gagner de l'argent facilement, c'est du spam. Allez plutôt voir l'ANPE.
  • Si vous n'avez pas vérifié l'information (avec google), c'est du spam
  • Si vous voulez les prévenir qu'un virus va tout faire péter, c'est du spam
  • Si vous l'envoyez à tout votre carnet d'adresse, c'est du spam (hors changement d'e-mail)

En cas de doute, demandez à votre entourage.

samedi, 31 décembre 2011

Les noms de domaine

Petit résumé rapide: Les différents ordinateurs et appareils peuvent communiquer sur internet grâce à des adresse IP, un peu équivalent aux numéros de téléphone. (exemple : 176.31.232.221 ou 2001:41d0:2:f9dd::1).
Vu la difficulté pour retenir, un système de nom de domaine, équivalent à l'annuaire a été crée et permet de remplacer une adresse IP par un nom plus facile à retenir (exemple: nanami.fr).
Lorsque l'on possède un nom de domaine, on peux créer des sous-domaines, gérés par le possesseur du nom de domaine d'origine. (exemple: forum.nanami.fr).

Lorsque l'on crée un compte sur un site pour avoir une adresse e-mail, un site web, un blog ou tout autre service, on deviens généralement dépendant de son fournisseur de service. Si je crée un site chez Free, je deviens dépendant de l'administrateur du nom de domaine free.fr. SI je me crée une adresse Gmail, je deviens dépendant de gmail.com et de leurs service (donc de leurs éventuels dérapages...).
Pour éviter de changer de nom de domaine, on pourrait être tenté de prendre un service de redirection. Un tel service à déjà existé : @fairesuivre.com. Manque de bol, ils ont fermé, laissant leurs clients dans l'impasse.
Or, le système de nom de domaine possède un attribut non négligeable: le transfert de nom de domaine. En effet, si vous achetez un nom de domaine chez un fournisseur et que celui-ci ne vous conviens plus ou fait faillite, vous pouvez alors transférer le nom de domaine chez un autre fournisseur.

Un nom de domaine permet alors d'avoir une identité (e-mail, site internet, ...) et son indépendance à vie pour une dizaine d'euros par an. Il ne vous reste plus qu'à savoir si vous êtes prêt à mettre un peu d'argent pour être certain de garder votre identité et votre indépendance.

mercredi, 30 novembre 2011

Chargement d'une image avec Ajax

Dans mon précédent billet, j'expliquais comment charger du texte avec Ajax.


Pour charger de l'XML avec, il suffit de remplacer responseText par responseXml, retournant alors un objet javascript plutôt que du texte.

AJAX n'est pas prévu pour transférer des données binaires mais uniquement du texte. Une solution pourrait être de transférer l'image en l'encodant en base64 et de l'intégrer via les data-uri en utilisant un code ressemblant à ceci :
imgtest=new Image();
imgtest.src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHV..."
Problème : une image encodé en base64 prends 33% de place en plus.

La solution est en fait plus simple et était déjà utilisa avant l'apparition d'ajax: le préchargement d'images avec l'utilisation d'onload pour s'avoir quand elle a fini son chargement
imgtest=new Image();
imgtest.src="example.com/image.jpg"
imgtest.onload=function(){ imgtest.style.display='block'; }

On pourra alors combiner les deux méthodes pour charger par exemple une image et sa description.

mardi, 4 octobre 2011

Les données dans "le cloud"

Suite à un article de Tristan Nitot, j'ai pas mal réfléchi sur le sujet et j'ai donc décidé de publier un article sur les données dans le cloud et la vie privée.

Quand on veux mettre ses données dans le cloud pour pouvoir y accéder de partout, on se retrouve face à plusieurs solutions :

  • un système tel que forumactif/skyblog ne vous permet pas d’accéder à vos données (certains s'en approprient même les droits comme un certain réseau social)  (vie privée : catastrophe)
  • un système tel que googledoc permet d'acceder à vos données, mais de manière peu pratique : il faut passer par l'interface web pour télécharger un .zip  (vie privée : pas terrible du tout)
  • un système tel que gmail permet de sauvegarder facilement et régulièrement ses mails en local via imap/pop, mais l'hébergeur peux facilement exploiter les données (vie privée : pas terrible du tout)
  • un système tel qu'un forum SMF/PHPBB hébergé chez un hébergeur gratuit ou payant permet de sauvegarder facilement les fichiers via SFTP et la base de donnée  (vie privée : je ne connais pas d'hébergeur s’autorisant dans ses GCU la fouille d'un FTP à des fins publicitaires, c'est donc pas mal au niveau vie privée)
  • un système ftp/dropbox/ubuntuone avec une surcouche de cryptage (vie privée : le must)
  • un système de fichier, décrypté coté navigateur, avec des applications certifiées et que l'on peux CHOISIR (par la communauté, pas par un market ou un certain UEFI avec des certificats non gérables par l'utilisateur (contrairement au certificats dans firefox, totalement éditables)) : (ultime)

Le problème est ensuite celui de l'application qui va utiliser ces données :

Quand un ami partage un album photo via un service web, je suis obligé de passer par l'application web de visualisation des photos, alors qu'à la base, il devrait uniquement indiquer un répertoire web avec un système de métadonnées standardisé et ouvert.

Plutôt que de chercher à utiliser des surcouches de logiciel, je pense qu'il vaudrait mieux revoir l'architecture des OS qui ne permettent pas avec une interface "user friendly"

En effet, l'idée du chromebook est une mauvaise idée, on transforme le navigateur en gestionnaire d'applications qui deviens un intercepteur d'applications javascript. Chaque application est téléchargée par le fournisseur de service qui se retrouve à avoir un contrôle total sur l'application et les données!

Pour moi, chaque ordinateur devrait avoir un système d'exploitation qui va s'occuper de la gestion des drivers, des programmes, des utilisateurs et du système de fichier.
Quand un utilisateur se connecte à l'ordinateur, il se connecte à son profil crypté sur le web, qui:

  • va indiquer quels applications installer en local en supplément (si elles ne sont pas déjà disponibles)
  • va gérer un cache local crypté (un peu comme un GIT crypté)

Quand l'utilisateur quitte le poste, il peux choisir :

  • de supprimer ses données locales
  • de les conserver en cache en évitant des les effacer (pour ceux qui compte le réutiliser)
  • de les conserver en cache, mais qu'ils peuvent êtres effacés (pour ceux qui veulent garder un cache mais ne pas gêner le propriétaire s'il a besoin de place

Pour l'instant, on en est loin et le libre à du mal à rattraper les commerciaux avec leurs services privatifs en ligne où les utilisateurs ne voient pas les problèmes futurs, en espérant que les commerciaux n'arriveront pas à se débarrasser du libre en revendant de l'UEFI avec la liste de certificats non éditable alors qu'ils n'hésitent pas à faire tourner leurs serveurs sous linux.

(personnellement, ce n'est pas à Microsoft de demander aux constructeurs de pouvoir désactiver l'UEFI ou mettre un certificat custom, mais à l'État d'interdire la vente de carte mères avec UEFI ne prenant que des certificats Microsoft, et interdire la vente de téléphone portable sans procédure pour le rootkiter (quitte à perdre la garantie) après un certain délai comme le désimlocage)

Stockage de mots de passe

En informatique, il deviens très rapidement nécessaire de gérer son identités sur plusieurs sites et systèmes.

Et actuellement, on se retrouve à retenir plein de mots de passe, vu qu'il n'existe pas encore de solution unique et complète. En effet, j’estime qu'il faut :

  1. un système pérenne qui résiste à la suppression de compte mail (en quittant son ancien FAI), du nom de domaine (comme un certain wikileaks), de son téléphone...
  2. un système qui permettes un certain anonymat : si mon compte ebay et mon compte google utilisent la même adresse e-mail ou la même URL pour openID, ils peuvent me suivre à la trace.
  3. un système blindé : en cas de vol/perte de mot de passe, il doit y avoir des systèmes de révocation.

OpenID et BrowserID n'y répondent pas vraiment et pour moi, la solution réside dans les certificats GPG et un principe de fonctionnement tel que décrit :

Sur un PC (de préférence sécurisé, en live CD et non connecté au net), on génère un trousseau de clef A B C D (qu'on peux imprimer voir une master qui signe toutes ces clefs) ... chacune signe des clefs A1 B1 C1 D1 qu'on stocke sur une clef USB

On utilise alors les clefs A1 B1 C1 D1 pour s'authentifier sur les sites. Si la clef B1 est corrompue, on retourne sur le netbook et on génère une clef B2 qui révoquera la clef B1 et qui servira de nouvelle clef d'authentification.

  1. Le système est indépendant d'un quelconque compte mail ou nom de domaine
  2. un système qui permettes un certain anonymat : si mon compte ebay et mon compte google utilisent la même adresse e-mail ou la même URL pour openID, ils peuvent me suivre à la trace.
  3. un système blindé : en cas de vol/perte de mot de passe, il doit y avoir des systèmes de révocation.

En attendant qu'un tel système soit utilisable, on se retrouve à gérer plein de mots de passe. Problème, je n'ai pas de serveur chez moi où héberger en permanence ce fichier, et je n'ai pas envie de le stocker en clair chez mon hébergeur. Je pourrais le crypter chez mon hébergeur, mais ça signifierais envoyer le mot de passe par le réseau (et je n'ai pas de https disponible dans mon offre).

Solution: effectuer le cryptage/décryptage coté navigateur. Ceux-ci ne gérant pas les fonctions cryptographiques en natif, j'ai dû recourir à une librairie en javascript.
Le script ci dessous effectue des copies de sauvegardes du fichier crypté.

Télécharger le script (WTFPL)

Ce script php génère donc une page HTML avec un champ textarea crypté, qui se décrypte via javascript quand vous aurez saisi la bonne clé. Vous pouvez saisir de nouvelles informations , une autre clef et cliquer sur save pour envoyer la nouvelle version cryptée sur le serveur.
Le script est fourni sans garantie (ne l'utilisez pas pour des trucs trop importants sans vérifier le code source)

- page 4 de 8 -