BlueIcefield Le savoir n'a de valeur que s'il est partagé

5mai/11Off

Scan’Mail : un générateur de QR code intégré à Thunderbird

J'ai dernièrement profité de mes temps libres pour développer un module pour le client de messagerie Mozilla Thunderbird,  j'ai nommé celui-ci Scan'Mail. Il permet d'un simple clique droit sur une adresse email, un lien, une image ou une sélection de texte de générer un QR code que vous pourrez scanner à l'aide de votre smartphone (iPhone, Android ou autre) pour récupérer ses informations. C'est un moyen rapide et original de copier des données contenues dans vos emails sans risquer une erreur de retranscription.

J'ai pris beaucoup de plaisir à coder ce petit greffon même si j'ai trouvé la documentation en ligne peu conviviale et parfois incomplète. Je compte améliorer ce premier plugin en ajoutant, dans la prochaine version, le support du format vCard pour pouvoir transférer des contacts.

Je invite à télécharger Scan'Mail via son espace dédié sur le site de Thunderbird et à me laisser vos commentaires :

https://addons.mozilla.org/fr/thunderbird/addon/scanmail/

 

3sept/103

[SysAdmin] Safe-iptables

Lorsqu'on est administrateur systèmes et réseaux spécialisé dans le logiciel libre, on bosse la majorité du temps sur des serveurs GNU/Linux ou BSD, ce qui implique une utilisation privilégiée de la console ainsi que du protocole SSH pour les accès distants.

L'un des risques que l'ont encoure est de perdre cet accès SSH suite à une fausse manipulation, plus particulièrement lors de l'ajout d'une règle de firewall.

Personnellement, je travaille essentiellement sur des serveurs localisés en Afrique du sud, une telle erreur serait donc dramatique car je perdrais mon unique voie d'accès. Pour éviter de me retrouver dans une telle situation, j'ai codé en Bash une petite commande pour adapter à iptables le mécanisme de confirmation qui existe sur Shorewall.

#!/bin/sh
 
# Safe-iptables
# Author  : Nassim Kacha
# License : GNU GPL2
# Date    : 30/08/2010
 
# Exit codes
#
# O Normal execution
# 1 Can't save previous firewalling rules
# 2 Bad arguments
# 3 Missing root privileges
# 4 Changements aborted by user
 
TIME=5 # Can be customized
 
if [ -z $TMPDIR]; then
     TMPDIR='/tmp'
fi
 
TMPFILE=`/usr/bin/mktemp --tmpdir=$TMPDIR iptables_XXXXX`
 
privilege_checking() {
	if [ $(id -u) -ne 0 ]; then
		echo "Sorry, you must run the command as root !"
		exit 3
	fi
}
 
main() {
	read -n 1 -t $TIME -p "Are you sure ? [y/N]" key
	case "$key" in
  		y|Y )
				/bin/rm -f $TMPFILE
				echo -e "n+ Rule applied"
				exit 0;;
 
		n|N|'' )
				/usr/sbin/iptables-restore > $TMPFILE
				/bin/rm -f $TMPFILE
				echo -e "n- Rule not applied"
			  	exit 4;;
 
		* ) 	echo ''
				main;;
	esac
}
 
### Main ###
privilege_checking
/usr/sbin/iptables-save > $TMPFILE
if [ $? -ne 0 ]; then
	echo "Error : not possible to save the previous firewall rules"
	exit 1
fi
/usr/sbin/iptables $*
if [ $? -eq 0 ]; then
	main
fi
exit 2

Cette commande fonctionne exactement de la même manière que la commande iptables à ceci près qu'elle vous demande une confirmation après avoir appliqué la nouvelle règle de pare-feu. Ainsi, si votre règle est mauvaise et qu'elle vous coupe votre liaison SSH, elle sera annulée après cinq seconde faute d'avoir pu confirmer la commande. Cela apporte donc une sécurité non négligeable lors de l'édition de vos règles de firewalling.

Je vous recommande d'enregistrer le code ci-dessus sous un fichier /usr/sbin/safe-iptables, de l'attribuer à l'utilisateur root et de lui donner les permissions 755. Il est aussi  judicieux d'insérer un alias dans votre fichier .bashrc qui remplacerait la commande iptables par safe-iptables.

Je compte packager ce script en DEB et en RPM dès que possible. Pour finir, je vous encourage à reprendre et à améliorer ce script si vous avez des idées supplémentaires.

EDIT 04/09/2010 : Modification du script suite aux excellentes remarques de TixxDZ.

27fév/102

Twirc : Petit script pour « twitter » depuis IRC

Pour passer le temps je me suis amusé à coder un script Python qui permet publier automatiquement sur son profil Twitter les liens postés dans 'un salon IRC. Son utilité est donc fortement contestable mais je partage tout de même sa source... peut être que cela inspirera certains pour concevoir un script ayant une réelle utilité.

La source est consultable ici... attention, les expressions régulières utilisées sont très loin d'êtres optimales.

21fév/108

[Sécurité] Jouer aux jeux BigFish sans limitation

Quand il m'arrivait d'avoir des p'tits temps libres, je jouais aux jeux proposés par le site BigFish. Ces petits jeux étaient assez prennant mais limités à une heure gratuite de jeu seulement, au delà, il fallait faire sortir la carte bleue.

Par curiosité j'ai commencé à analyser avec différents outils le fonctionnement du système de restriction, notamment les accès à la base de registre et au  disque dur.Finalement je me suis  retrouvé à coder une petite application en Python qui permet de remettre à zéro la période d'essai des jeux.

Les divers tests que j'ai effectué sous Windows XP SP2  sont concluants, cela semble aussi fonctionner sous Vista et j'imagine que sous Seven il en va de même.

Les curieux peuvent essayer mon application en la téléchargeant depuis ce lien, il faudra penser à installer l'intérpréteur Python pour Windows (soit 14Mo à télécharger en supplément).

J'insiste sur le fait que mon application n'a qu'un but démonstratif, je n'autorise en aucun cas sa distribution, sa commercialisation ou son utilisation dans un but frauduleux. Si les jeux BigFish vous plaisent, achetez-les !

14fév/103

[WordPress] Code php pour afficher les derniers commentaires

Jour après jour je peaufine petit à petit mon nouveau blog, l'une des tâches qui me prend le plus de temps est la personnalisation de son interface.

Dernièrement j'ai voulu inclure, en bas de page, la liste des derniers commentaires. Malheureusement le template que j'utilise n'inclut pas cette option et le plugin par défaut fournit avec WordPress ne permet d'insérer la liste des derniers commentaires que dans la barre latérale du blog.

Ma première démarche a consisté à rechercher sur le net le bout de code PHP dont j'ai besoin, j'ai trouvé ce qui semble être le même code sur différents sites mais à chaque fois, celui-ci s'est avéré non fonctionnel. Au final, je me suis donc résolu à coder moi-même la fonction permettant d'obtenir les derniers commentaires, voici sa source :

  1. <?php
  2. /* Fonction pour afficher les derniers commentaires */
  3. function wp_recent_comments($nb_comments = 5, $comment_len = 120) {
  4. global $wpdb;
  5. $request = "SELECT * FROM $wpdb->comments";
  6. $request .= " WHERE comment_approved = '1' AND comment_type!='trackback' AND comment_type!='pingback'";
  7. $request .= " ORDER BY comment_date DESC LIMIT $nb_comments";
  8. $comments = $wpdb->get_results($request);
  9. if ($comments) {
  10. echo '<ul>';
  11. foreach ($comments as $comment) {
  12. ?>
  13. <li>
  14. <a href="<?php echo get_permalink( $comment->comment_post_ID ) . '#comment-' . $comment->comment_ID; ?>">
  15. <?php echo '<strong>'.wp_get_author($comment).'</strong>'; ?>:</a>
  16. <?php echo strip_tags(substr(apply_filters('get_comment_text', $comment->comment_content), 0, $comment_len)).'...'; ?>
  17. </li>
  18. <?php
  19. }
  20. echo '</ul>';
  21. }
  22. else {
  23. echo '<ul><li>Pas de commentaire !</li></ul>';
  24. }
  25. }
  26. function wp_get_author($comment) {
  27. if ( empty($comment->comment_author) ) {
  28. $author = 'Anonyme';
  29. }
  30. else {
  31. $author = $comment->comment_author;
  32. }
  33. return $author;
  34. }
  35. ?>

Si vous avez des difficultés avec le copier/coller, vous pouvez télécharger le code source au format TXT depuis ce lien.

Vous devez ajouter le code ci-dessus à la fin du fichier functions.php du template de votre blog, il faut bien faire attention à le mettre après la balise ?> qui se trouve sur la dernière ligne.

Il ne vous reste plus qu'à appeler la fonction à l'endroit où vous désirez afficher la liste des derniers commentaires, comme ceci :

<?php wp_recent_comments(nombre_de_commentaires, longueur_des_commentaires) ?>

Notez que les paramètres de la fonction wp_recent_comments sont optionnels, par défaut, la fonction affiche les 5 derniers commentaires sur une longueur de 120 caractères.

N'hésitez pas à me communiquer vos remarques et suggestions. Merci !

Page 1 sur 212