Configurer
Protéger une base SQLite sur un hébergement PHP
Emplacement privé, droits d’accès, requêtes préparées et sauvegarde : gardez votre fichier SQLite hors de portée des visiteurs.
La réponse courte
Placez votre base SQLite en dehors du dossier public et faites-y accéder PHP avec un chemin privé. Une base stockée dans un fichier peut être téléchargée si elle est publiée comme une ressource ordinaire. L’extension du fichier n’est pas une protection. Vérifiez à la fois l’accès de l’application et l’impossibilité de récupérer la base depuis une URL publique.
Sommaire
Séparer fichiers visibles et données privées
Dans l’environnement Portane, public contient ce que le serveur doit publier. Gardez les bases, exports, sauvegardes et secrets dans un emplacement privé du service. Évitez de copier tout le projet dans public pour résoudre un problème de chemin. L’application peut utiliser un chemin calculé à partir de son propre emplacement ; ne dépendez pas d’une adresse fournie par le visiteur pour choisir le fichier à ouvrir.
Accorder seulement les accès nécessaires
PHP doit pouvoir lire ou écrire les données selon le fonctionnement de l’application. Donnez les droits adaptés à ce processus, sans rendre arbitrairement tous les fichiers accessibles à tous. Prenez aussi en compte les fichiers auxiliaires éventuellement créés par SQLite et la place disponible. Un message de refus d’écriture demande de vérifier l’emplacement et les droits, pas de déplacer la base vers un dossier public.
Utiliser une couche d’accès correcte
PHP fournit notamment PDO_SQLITE pour accéder à SQLite. Utilisez des requêtes préparées pour les valeurs saisies par les utilisateurs et traitez les erreurs dans des journaux privés. Ne construisez pas une requête en collant directement du texte reçu dans un formulaire. La sécurité ne dépend pas seulement de l’emplacement de la base : les règles d’autorisation dans l’application doivent empêcher un compte de lire les données d’un autre.
Prévoir une copie cohérente et un contrôle
Une copie effectuée pendant des écritures demande une méthode adaptée à SQLite. Pour une petite application, une fenêtre de maintenance avec arrêt des écritures peut simplifier la procédure ; une sauvegarde en ligne doit suivre les outils prévus. Testez la restauration sur un environnement séparé. Vérifiez enfin qu’une URL visant le fichier de base ou un export ne renvoie jamais son contenu à un visiteur.
Avant de valider
Questions fréquentes
Renommer la base en .secret suffit-il ?
Non. Un nom peu visible ne remplace pas un emplacement privé et des règles d’accès correctes.
SQLite remplace-t-il MySQL pour tous les projets ?
Non. Les besoins de concurrence, les fonctionnalités et l’architecture de l’application déterminent le choix. MariaDB privée est disponible sur PHP Plus ; les autres formules PHP utilisent SQLite.
Documentation de référence
Les fonctionnalités des logiciels évoluent. Vérifiez leur documentation et votre version avant une manipulation. Les ressources et exclusions de l’offre priment sur les exemples généraux du guide.