Si les données sont vraiment sensible , la seule véritable solution est de crypter les données.
Mysql possède des fonctions dédiées à cette tache.
Ce qui donnera par exemple :
INSERT INTO t VALUES (1,AES_ENCRYPT('text','cle_secrete'));
Il faudra évidemment faire un décrypt à la lecture :
SELECT AES_DECRYPT(champs, 'cle_secrete') ...
Mais une personne arrivant à mettre la main sur un export de la base ne pourra tout simplement rien en tirer. Il faut par contre accepter une baisse de performance sur l'ensemble de l'application.
Dans le même genre sqlite propose une extension. Mais ça demande de recompiler sqlite pour PHP avec cette extension qui coute 2000$
Pour ce qui est du code PHP il est tout à fait possible de l'obfusquer afin de le rendre non modifiable , voir même d'y appliquer une licence (genre 30 jours d'utilisation).
Voir des outils comme Zend Guard (il existe probablement des alternatives open source)
Partager