XXIV. Exercice d’application – version 13▲
La version 13 amène peu de changements : elle sécurise l’accès aux fichiers de l’application.
Avec la version 12, on peut demander l’URL suivante [http://localhost/php7/scripts-web/impots/version-12/config.json]. On obtient alors la page suivante (Firefox) :
Or ce fichier [config.json] contient des informations sensibles tels les identifiants des utilisateurs autorisés à utiliser l’application. Il ne faut pas qu’il soit accessible aux utilisateurs. Il en est de même pour tous les fichiers de l’application à l’exception des fichiers [main.php, index.php, Views/logo.jpg] qui eux doivent être accessibles de l’extérieur. En effet les vues ont besoin d’avoir un accès HTTP au logo de l’application. La version 13 amène une solution simple à ce problème.
Dans Netbeans, nous faisons un copier-coller du dossier [version-12] dans [version-13] :
- en [1], dans le dossier racine de l’application, nous ne laissons que les scripts [index.php, main.php] ;
- en [2], les fichiers de configuration sont placés dans un dossier [Config] ;
- en [3], l’image [logo.jpg] est placée dans un dossier [Resources] ;
Le serveur HTTP utilisé est ici un serveur Apache. Celui-ci permet de contrôler l’accès à un dossier via un fichier [.htaccess]. Dans tous les dossiers auxquels nous voulons interdire un accès direct par URL, nous créons le fichier [.htaccess] suivant :
Ces deux lignes font que tout accès au dossier est interdit à tous.
Nous plaçons ce fichier dans tous les dossiers de l’application sauf dans le dossier racine et le dossier [Resources]. Finalement seuls trois fichiers sont accessibles de l’extérieur : [index.php, main.php, Resources/logo.jpg].
Faisons quelques essais :
Quelques modifications doivent être faites dans le code :
Dans le fichier [Config/config.json] :
Dans le fichier [main.php] :
Dans le fichier [Views/v-bandeau.php] :