Je peux dire une coderie ?
![google_captcha[1] -](http://www.aurelien-morillon.com/wp-content/uploads/2010/10/google_captcha1-300x217.png)
Les captchas sont une infamie sans nom et se révèlent de plus en plus difficile à résoudre, même en plissant les yeux. Voici une idée qui permettrait de casser les captcha pour un système automatisé.
L’idée consiste à proposer un service du type mailinblack à des utilisateurs souhaitant une sécurité accrue : Lorsqu’une personne envoie un email et que son adresse n’est pas dans le carnet du destinataire, alors un message est retourné, invitant l’expéditeur à saisir un captcha.
L’idée origéniale consiste à ouvrir une connexion vers un service quelconque (un formulaire d’annuaire par exemple), garder la connexion ouverte et afficher le captcha.
L’expéditeur du message résolvera le captcha, vous envoyez la réponse au formulaire de l’annuaire et si ça réussi, vous faites passer l’expéditeur du message.
Au final, le captcha qui vous embêtait vous a rendu service, deux fois :
- Vos utilisateurs ont une BAL plus sûre (Et ils vous paient pour ça
)
- Vous avez soumis automatiquement votre site dans un annuaire de plus (Et sans effort !)
Procédé cynique, n’est ce pas ?
![052410_rg_8BitTrashCan_01[1] -](http://www.aurelien-morillon.com/wp-content/uploads/2010/07/052410_rg_8BitTrashCan_011-300x208.jpg)
Yassine de pro-assurances.fr m’a fait part d’un article super intéressant ce matin, concernant le blocage des images dans les emails et une méthode habile pour contourner cette limitation. Plus d’infos ici :
Lire la suite »

La balise < abbr > permet de rendre explicite un acronyme ou une abréviation. Cependant, elle m’a toujours posé un problème. C’est purement existentiel vous allez me dire, mais je ne la trouve vraiment pas présentable. Déjà qu’avec des balises extraordinairement communes on arrive à avoir des différences d’affichage selon les navigateurs (et je ne vous parle pas des styles margin/padding) Les navigateurs ne savent pas afficher proprement les abréviations. Ca chevauche les lignes, c’est écrit en tout petit, on n’y voit rien. C’est pourtant pas compliqué de mettre la définition entre parenthèse à côté. De plus aujourd’hui, je suis tombé sur une page qui m’a bien fait rire :

C'est vraiment pas beau sous Firefox
Voyons le code :
<abbr moz-ruby-mode="block" moz-ruby-reformed="done" moz-ruby-line-edge="none" style="vertical-align: baseline ! important;" rubytext="Secrétaire d'Etat chargé de la Fonction publique" moz-ruby-state="done" title="Secrétaire d'Etat chargé de la Fonction publique">Georges Tron</abbr>
Outre les moz-machin qui sont d’une compatibilité douteuse, depuis quand Georges Tron est-il l’abréviation de « Secrétaire d’Etat chargé de la Fonction publique » ? C’est un sacré raccourci, vous ne trouvez pas ? Vous pouvez toujours faire du code valide w3c, n’oubliez donc pas le sens réel des balises que vous utilisez
Edit les moz-truc n’apparaissent pas sous IE8, ouf on est sauvé !
![boggle[1] -](http://www.aurelien-morillon.com/wp-content/uploads/2010/05/boggle1-300x276.jpg)

Un petit outil bien pratique pour générer des textes ou titres uniques à la volée. Particulièrement intéressant pour les soumissions aux annuaires, les échanges de lien, le dépot de petites annonces… White hat, grey hat, black hat, tout dépend ce que vous en faites
Content spinner en ligne gratuit
Je cherchais un outil pour aider les nouveaux venus en exploitant l’intelligence collective de mes visiteurs :
Lorsqu’un visiteur renseigne tel ou tel champ, une boite apparait pour suggérer des infos déjà saisies auparavant.
Un peu comme Google avec ses suggestions de requêtes.
Des scripts tout faits, il en existe des dizaines, utilisant des super framework « killer app », tels que jQuery, MooTools, Prototype (Script.aculo.us) … top moumoute !
Or, j’aime pas les framework. Sans vouloir « troller », obliger les visiteurs à télécharger des gros trucs bien lourds, histoire d’utiliser 2 ou 3 fonctions fun, c’est pas trop mon truc.
Sous prétexte d’améliorer la productivité d’un nombre limité de personnes, (fainéants de developpeurs !), c’est avec ce genre de thons qu’on arrive à faire ramer un Quad Core en ouvrant la moindre application ….
Bref, j’ai prolongé mes recherches et je suis tombé sur deux scripts qui tournent sans framework :
J’ai choisi dms AutoComplete parce que c’est le premier que j’ai trouvé ayant une licence compatible avec mes projets et qu’il répond pile poil à mes besoins
La mise en place se fait en 3 étapes :
1. On copie le javascript sur le serveur
2. On personnalise le générateur XML pour aller chercher les informations utiles dans la base de données (Modifiez simplement l’exemple présent dans l’archive)
3. On ajoute le code JS dans le formulaire HTML et on le personnalise au besoin.
A noter qu’il est possible de déclarer une fonction-retour de votre cru, que dms appellera sur sélection d’une suggestion.
PS. dms AutoComplete a été développé par un Brésilien. Les commentaires sont doublés Anglais/Portugais, donc pas de soucis.
PS2. Si quelqu’un teste liveSearch, je suis intéressé par son feedback

Dure réalité que celle ci …

Vous proposez un service à vos visiteurs avec une page personnalisée. Vous pouvez leur attribuer une adresse du type http://www.domaine.tld/utilisateur/, sans même avoir besoin de créer les dossiers. Il suffit de jouer un peu avec votre fichier .htaccess
Si l’adresse de votre page dédiée a cette forme : http://www.domaine.tld/page.php?id=utilisateur
Vous pouvez la rendre plus sexy en la réécrivant de cette manière : http://www.domaine.tld/utilisateur/
Il suffit de modifier votre fichier htaccess de cette manière :
RewriteEngine on
RewriteRule ^(.+)/$ /page.php?id=$1 [QSA,L]
Vous pouvez également gérer des appels à d’autres scripts demandant l’identifiant de l’utilisateur :
RewriteEngine on
RewriteRule ^(.+)/$ /page.php?id=$1 [QSA,L]
RewriteRule ^(.+)/(.+).php$ /$2.php?id=$1 [QSA,L]
Un appel à http://www.domaine.tld/utilisateur/exemple.php
renverra vers http://www.domaine.tld/exemple.php?id=utilisateur
Enfin, vous voulez peut être mettre une exception sur un dossier en particulier (De sorte à ce qu’il reste accessible). Par exemple, « /forum/ » :
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/forum/
RewriteRule ^(.+)/$ /page.php?id=$1 [QSA,L]
RewriteCond %{REQUEST_URI} !^/forum/
RewriteRule ^(.+)/(.+).php$ /$2.php?id=$1 [QSA,L]
Ici, la condition doit être répétée avant chaque règle de réécriture.
Si vous utilisez les champs normalisés avec MagPieRSS 1.7X et que les descriptions/summary de certains feeds Atom manquent à l’appel, modifiez simplement une ligne dans la fonction « normalize » du fichier rss_parse.inc(.php) :
LL380 environ : if ( $this->is_atom() !== FALSE ) {

Sécuriser ses formulaires : GET POST et REQUEST
Aujourd’hui, un scammer polonais ayant abusé de la vodka a voulu se faire plaisir en injectant du JS dans un des sites que je m’apprête à lancer … Ça m’a rappelé que j’ai un script PHP bien pratique qui permet de se prémunir de ce genre de cochonnerie :
function secureReceiptData(){
foreach ($_POST as $cle => $valeur) {$_POST[$cle] = strip_tags($valeur);}
foreach ($_GET as $cle => $valeur) {$_GET[$cle] = strip_tags($valeur);}
foreach ($_REQUEST as $cle => $valeur) {$_REQUEST[$cle] = strip_tags($valeur);}
}
C’est pas nouveau mais c’est toujours utile. Le but est s’assurer qu’aucune balise HTML ne soit passée en GET ou en POST.
Mode parano – on : On refait une boucle sur REQUEST pour être sûr
Crédit photo : Oberazi