mardi 27 mai 2014

Pattern Singleton + PHP trait : une manière simple d'implémenter un design pattern récurrent

Depuis PHP 5.3.0, il est possible de faire la différence entre la classe qui contient un code statique et la classe qui exécute ce code. Ce qui rend donc l'implémentation du design pattern singleton assez simple.
Et avec PHP 5.4.0, nous avons droit aux traits. Les traits sont des bouts de code qui peuvent être réutilisés dans n'importe quelle classe. Vous trouverez ici tout ce que vous devez savoir sur les traits.

Objectif

Dans une premier temps je vais présenter (rapidement) le pattern singleton. En suite je vais décrire une méthode d'implémentation baseé sur les traits de PHP.
Attention :
Utiliser des traits pour ce genre de technique à l'avantage de ne pas bloquer l'héritage d'un objet, tout en écrivant un code complet (en opposition aux interfaces, où le code doit être recopié implémenté pour chaque classe).
Le pattern singleton est relativement simple a écrire, c'est pourquoi je trouve qu'il s'associe bien avec cette nouvelle fonctionnalité de PHP. Mais on peut rapidment écrire du code spaghetti avec le traits. C'est pourquoi je préconise de les utiliser seulement sur des comportements simples est clairs.

lundi 23 septembre 2013

Mes débuts dans la sécurité, IPTABLES


Cet article fait suite à "Mes débuts en matière de défences de mon serveur", mais devrait être lu avant celui-ci.

Configuration d'iptables

Introduction

On peut difficilement parler de sécurité informatique et passer sous silence la question du firewall. Jusqu'à maintenant je n'avais pas activé iptables sur mon serveur, ça visibilité étant surtout locale, je n'avais pas vraiment peur d'un piratage.
Mais comme la sécurité commence par là, "So be it !" comme dirait les 'ricains et les rosbifs.

L'état exacte d'iptables sous Archlinux avant qu'on fasse quoi que ce soit, je ne le connais pas. Enfin bref, après un # touch /etc/iptables/iptables.rules et un redémarrage ça marche.

mercredi 11 septembre 2013

[draft][being rectified] My (quite) Perfect Server (NAS, HTPC) - Partitioning

Introduction

In this article by mediacenter I mean the computer I use as server/NAS/HTPC.
I'm french and, as you probably know, we are bad english speaker, do with it :-p.

Hardware & Software

The mediacenter is base on an Asus P5N7A-VM (with an IGP GeForce 9300) and a Core 2 Duo E8400.
Data is stored on a 1TB HDD (sata II).
I'm using Arch linux and I will made a clean reinstall of it with RAID mirror and striping and LVM.

jeudi 21 mars 2013

Mes débuts en matière de défenses de mon serveur

 Contexte

J'ai un petit serveur à la maison qui me sert de NAS et de HTPC.
Je viens de modifier légèrement ma configuration de lighty pour utiliser simple_vhosts. Et comme jamais rien ne marche du primer coup j'obtiens un joli "404 Not Found".
Premier réflexe :
# tail /var/log/lighttpd/access.log
Pour voir ce que me retourne la recherche de chemin (mais au final je ne pense pas que ce soit ici, surtout que simple-vhost.debug n'est pas à enable).

Surprise : dans les dernières lignes je vois:
222.126.196.123 - - [20/Mar/2013:09:42:34 +0100] "GET /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1" 400 349 "-" "-"
Bon évidemment ça ne me plais pas trop.

vendredi 27 janvier 2012

phpMyAdmin + SSL + CentOS

phpMyAdmin + SSL + CentOS

Configuration de phpMyAdmin pour une utilisation à travers une connexion SSL, avec une identification par cookie, sur un serveur Apache, basé sur une CentOS.

Versions :
  • CentOS 6.2
  • Apache 2.2.15
  • PHP 5.3.3
  • MySQL Server 5.1.52

Je passe sur l'installation des différents composants ... en gros un
 # yum list httpd phpmyadmin php mysql-server mod_ssl
devrait faire l'affaire.

vendredi 17 juin 2011

Compiler PHP pour page perso free.fr

Vous avez des pages persos free.fr, mais la version PHP que vous utilisez pour votre développement n'est pas la même et certaines fonctionnalités manquent. Cet article vous explique comment compiler une version de PHP proche de celle des pages persos de free.

Versions :
  • Fedora 16
  • Lighttpd 1.4.28
  • PHP 5.1.3
Sur les serveurs free la version de PHP est la 5.1.3RC4-dev. J'imagine donc que la version finale de la 5.1.3 est la plus proche.
Vous la trouverez ici.