Une remarque cependant. Je suis allé regarder le code. Le PHP est mélangé au HTML généré, et les variables sont insérées par simple concaténation de chaînes de caractères. Sans même parler de faille XSS, cela signifie que si une imprimante ou une option a un nom qui contient le caractère " par exemple, tout l'affichage de la page est cassé. Je vous recommanderais d'utiliser un système de template, qui en plus régler ces problèmes, rendra le code plus lisible.
De même, le script lance des commandes sur la machine sans vérifier les arguments. Cela signifie que vous laissez n'importe quel invité exécuter n'importe quelle commande sur votre serveur.
Et le fichier de configuration est dans un langage inventé pour l'occasion, qui ressemble au json, mais n'est pas totalement compatible, à cause du système de commentaires. Je conseillerais l'utilisation d'un langage existant, comme YAML par exemple, qui supporte les commentaires.
# sécurité
Posté par lovasoa (site web personnel) . En réponse au journal CWP : une interface web d'impression de fichiers PDF. Évalué à 10. Dernière modification le 27 août 2016 à 00:39.
Le projet est intéressant et utile.
Une remarque cependant. Je suis allé regarder le code. Le PHP est mélangé au HTML généré, et les variables sont insérées par simple concaténation de chaînes de caractères. Sans même parler de faille XSS, cela signifie que si une imprimante ou une option a un nom qui contient le caractère " par exemple, tout l'affichage de la page est cassé. Je vous recommanderais d'utiliser un système de template, qui en plus régler ces problèmes, rendra le code plus lisible.
De même, le script lance des commandes sur la machine sans vérifier les arguments. Cela signifie que vous laissez n'importe quel invité exécuter n'importe quelle commande sur votre serveur.
Et le fichier de configuration est dans un langage inventé pour l'occasion, qui ressemble au json, mais n'est pas totalement compatible, à cause du système de commentaires. Je conseillerais l'utilisation d'un langage existant, comme YAML par exemple, qui supporte les commentaires.