Tuesday, 25 November 2014
|
Écrit par
Grégory Soutadé

Mona Lisa en robot

Quel drôle de titre ! Je vais donner ici quelques astuces pour éviter que les robots qui parcourent le net n'aient accès à vos données sensibles. Cet article s'adresse surtout aux webmasters.

Qu'est-ce qu'une robot ?

Un robot est un programme automatique qui va scanner tout le web à la recherche d'informations. Tous les robots ne sont pas méchants : Google utilise des robots pour indexer les sites parcourus. D'autres, par contre n'ont qu'un seul objectif : récupérer des informations personnelles pour en faire un mauvais usage (SPAM en tête) ou encore exploiter des failles de sécurité sur les sites rencontrés.

Base64

En tant qu'éditeur de site web (le mien !), je suis aux premières loges. Je n'ai pas envie que mon adresse mail se balade partout sur les annuaires de SPAM, mais je souhaite quand même la fournir aux visiteurs légitimes.

Une astuce que j'ai utilisé et qui fonctionne très bien est d'encoder un contenu que l'on ne souhaite pas exposer aux robots en base64 et de l'inclure dans un div avec comme classe CSS "decode64". Au chargement de la page, un petit bout de Javascript va décoder le contenu et l'afficher. C'est exactement ce qui se passe pour ma page "À propos" (regardez le source). L'inconvénient est l'obligation d'activer le Javascript.

Commentaires

Un système de commentaire sur internet (forum, articles...) est tout aussi sujet à SPAM. Les robots vont écrire automatiquement des commentaires sur tout système qui le leur permet. Pour bloquer cette avarie, on peut soit n'autoriser les commentaires que via inscription (ce que fait Disqus), soit utiliser une petite astuce.

Quand on poste un commentaire, il est souvent requis d'entrer son email. Les robots remplissent donc automatiquement le champ "email" d'un formulaire. Sur Dynastie, j'utilise deux champs email : le premier se nomme "email" et est caché par CSS (donc invisible pour l'utilisateur légitime), et le second "mel" (facultatif chez moi) qui est le véritable email.

Ainsi, quand le moteur de blog reçoit un formulaire dont le champ "email" est rempli, il le rejette, car il ne peut provenir que d'un robot !

Email de contact

Il y a encore une faille dans laquelle s'engouffre les robots spammeurs : l'email de contact. Par convention, on définit souvent une adresse "contact@monnomdedomaine". Les robots peuvent donc tenter d'écrire à cette adresse même s'ils ne l'ont trouvé nulle part (ça ne coûte rien). Le seul moyen pour parer cette attaque est le filtre anti spam du serveur mail...

Monday, 17 November 2014
|
Écrit par
Grégory Soutadé

Logo Cross Amnesty International

Comme chaque année, le cross revient à Valbonne pour la bonne cause. Si le temps le permet (sniff les paroisses), les bonnes âmes pourront se défouler sur le 1km, 4km ou 11km le dimanche 14 décembre 2014. Le tout pour seulement 10 euros (12 sur place) et un certificat médical de moins d'un an.

Retour :

Malgré le temps incertain, c'est quelques 274 personnes qui se sont déplacées pour le cross (environ 75% pour le 10km). Ce qui est plutôt une bonne nouvelle.

Le 4km est en fait un 3.6km (merci la montre GPS), que j'ai personnellement bouclé en 18'10, donc plutôt satisfait (même si on peut mieux faire). C'est un peu dommage qu'une partie des inscrits ne se soient pas présentés (environ 25% du 4km).

Tuesday, 11 November 2014
|
Écrit par
Grégory Soutadé
COOLER MASTER Silencio 652                                                        98.99 €
COOLER MASTER - VS 550								  70.99 €
Processeur INTEL Intel® Core™ i5-4570 3.2GHz Haswell 				 189.90 €
Carte mere ASUS Z97 K								 106.99 €
CORSAIR - Vengeance - 8Go ( 2x 4 Go ) PC12800 - 1600 MHz - CL8	 		  89.90 €
SAPPHIRE - ATI Radeon R9 280 3G GDDR5 PCI-E DVI-I / DVI-D / HDMI / 		 184.79 €
Crucial - SSD M550 - 2.5 pouces - 128 Go 					  79.99 €
WESTERN DIGITAL - Caviar Black - 1To | SATA 6 Go/s | 7200t | 64 Mo cache	  69.89 €
ASUS BC-12D2HT									  62.90 €
LOGITECH - Corded Mouse M500 							  26.90 €
LOGITECH Wired Keyboard K120                                                      12.90 €
ALTEC LANSING - BXR 1321 							  14.90 €

Total :                                                                         1009.04 €

En sus
ACER K272HULAbmidp - IPS - Ecran LED - 27 pouces 16 9 - 350 cd/m²		 359.00 €
Monday, 03 November 2014
|
Écrit par
Grégory Soutadé

Départ course des paroisses

Course annulée pour cause d'intempéries

Il y aura un éventuel report, à suivre...

Initiative originale (mais qui perdure depuis 20 ans), les paroisses de Saint-Raphaël organisent une course pédestre dans le massif de l’Estérel. Cette 20e édition se déroulera le mardi 11 novembre 2014. Des plus jeunes (1km et 1.7km) jusqu'aux vétérans (6km et 11.5km) en passant par les minimes (4km), la course est ouverte à tout le monde.

Sur les 10€ d'inscription (5€ pour les enfants), 5€ seront reversés à la paroisse.

Règlement oblige, il faudra tout de même fournir un certificat médical lors de l'inscription.

Wednesday, 29 October 2014
|
Écrit par
Grégory Soutadé

Direct access to physical address is a bad idea, but sometimes, for debug we need it. The trick used below is to disable MMU for only one instruction that do the read with fully configured environment and then re enabling MMU. Read and enable instructions should be in the pipe. The code works for arm11 but should also works for arm9 and maybe CortexA 32 bits series. Primitives has been found in FreeBSD 10 source code (sys/arm/arm/).

read_arm_phys_addr() must be called in supervisor mode (kernel mode).

#include <stdint.h> /* CPU control register (CP15 register 1) */ #define CPU_CONTROL_MMU_ENABLE 0x00000001 /* M: MMU/Protection unit enable */ #define CPU_CONTROL_DC_ENABLE 0x00000004 /* C: IDC/DC enable */ #define CPU_CONTROL_WBUF_ENABLE 0x00000008 /* W: Write buffer enable */ #define CPU_CONTROL_BPRD_ENABLE 0x00000800 /* Z: Branch prediction enable */ #define CPU_CONTROL_IC_ENABLE 0x00001000 /* I: IC enable */ uint32_t read_arm_phys_addr(void* addr) { uint32_t value; __asm __volatile ( // Load address "mov r0, %1\n\r" // Disable IRQ, FIQ and abort "cpsid ifa\n\r" // Disable MMU and cache "mrc p15, 0, r1, c1, c0, 0\n\r" "bic r2, r1, %2\n\r" "bic r2, r2, %3\n\r" "bic r2, r2, %4\n\r" "mcr p15, 0, r2, c1, c0, 0\n\r" "nop\n\r" "nop\n\r" "nop\n\r" // Read data "ldr r3, [r0]\n\r" // Enable MMU "mcr p15, 0, r1, c1, c0, 0\n\r" "nop\n\r" "nop\n\r" "nop\n\r" // Enable IRQ, FIQ and abort "cpsie ifa\n\r" "mov %0, r3\n\r" : "=r" (value) : "r" (addr), "i" (CPU_CONTROL_MMU_ENABLE | CPU_CONTROL_DC_ENABLE | CPU_CONTROL_WBUF_ENABLE), "i" (CPU_CONTROL_IC_ENABLE), "i" (CPU_CONTROL_BPRD_ENABLE) : "r0", "r1", "r2", "r3"); return value; }
Dernier gif les joies du code switching frameworks just because a feature sounded cool