dimanche 27 janvier 2013

Sécuriser app web (php/MySQL) sur un serveur client

Le langage php est un langage interprété ou un langage de script (« langage de script » désigne, dans un sens vague, n'importe quel langage de programmation interprété). Un langage interprété est un langage qui n’est pas exécuté directement par la machine mais par un autre programme appelé interprète.
Le langage de script est généralement exécuté à partir de fichiers contenant le code source du programme qui sera interprété. Donc le code source des fichiers php est ouvert côté serveur. Ce qui n’est toujours pas tolérable si le client n’a pas payé le code source.
La manière la plus facile pour sécuriser le code est d’utiliser un obfuscateur php. Son principe est simple : crypter le code php  dans les scripts par des codages MD5 sur 8 caractères. Ce qui a pour effet de rendre le code complètement incompréhensible et par conséquent non modifiable. Il existe une dizaine de solutions gratuites en ligne et personnellement j’utilise FOPO : http://fopo.com.ar/index.php
Pour sécuriser l’accès au phpMyAdmin (l’interface de gestion MySQL) rien n’est plus simple : il faut d’abord ajouter un mot de passe à l’utilisateur root à travers l’interface utilisateurs> changer les privilèges> modifier mot de passe. Puis changer le type de l’authentification au serveur dans le fichier config.inc.php du phpmyadmin en http : $cfg['Servers'][$i]['auth_type'] = 'http';  Le type est par défaut ‘config’. On aura donc une authentification http pour l’accès à l’interface phpMyAdmin.