======================================================= = phpSecurePages version 0.28 beta = = http://www.phpSecurePages.com = ======================================================= ------ introduction ------ - Sécurisez facilement vos pages! - Faites des groupes différents d'utilisateurs avec leur propres droits d'accès. - Identifiez votre utilisateur et utilisez ses données propres pour votre site. - Peut-être utilisé avec ou sans base de données associée. - Personnalisation complète des écrans et de la configuration. - Support de plusieurs langues. - Compatible PHP3 et PHP4. Une fois cette application web installée, il vous sera possible de sécuriser vos pages rapidement et facilement. Ajoutez seulement une ligne de code PHP à une page, et seules les personnes autorisées y auront accès. Vous pouvez inclure cette application à votre base de donnée existante ou paramétrer les informations dans le fichier de configuration. Vous désirez avoir des niveaux d'accès différents ? Aucun problème, il vous suffit juste de créer différents groupes d'utilisateurs et de leur affecter les droits que vous voulez. En plus les informations sur l'utilisateur (nom, mot de passe, groupe et ID) sont disponibles après connexion pour être utilisées dans vos page. Vous désirez changer l'aspect de l'écran de connexion ? La aussi aucun problème, il suffit de changer le code HTML de 'interface.php' pour créer son propre design. Et puis surtout n'oubliez pas qu'il vous est possible de paramétrer ce programme pour utiliser votre langue maternelle. ------ Quoi de neuf ? ------ Consulter le fichier changelog.txt pour les dernières modifications Consulter également régulièrement les FAQ de mon site http://www.phpSecurePages.com/ ou en français non officiel http://www.ifrance.com/mercusot/phpSecurePages ------- Pré-requis ------ - Pour PHP3 phpSecurePages nécessite MySQL installé sur le serveur et la création de deux tables. - Pour PHP4 MySQL est optionnel, phpSecurePages peut être utilisé avec ou sans MySQL avec PHP4. ------- installation ------ - Extrayez les fichiers dans le répertoire 'phpSecurePages'sur votre serveur. - Assurez vous que tous les fichier .php sont accessibles par l'interpréteur PHP sur votre serveur. - Modifiez le fichier de configuration 'secure.php' --> (voir section 'configuration'). - Insérez les lignes nécessaires de code dans vos pages HTML --> (voir section 'Comment ça marche'). - Si vous utilisez une base de données (indispensable pour PHP3) alors créez les tables requises. --> (voir section 'MySQL'). ------- configuration ------ Éditez le fichier 'secure.php' afin de modifier la configuration. Lisez attentivement les commentaires de chacune des lignes de code. - Dans un premier temps renseignez les informations nécessaires à l'installation de ce programme. - Ensuite choisissez entre l'utilisation d'une base de données ou le stockage des informations de connexion dans ce fichier de configuration (cela peut se faire aussi bien pour PHP3 que pour PHP4, cependant PHP3 nécessite deux tables en base de données pour la gestion des sessions). Si les deux possibilité sont renseignée à 'true', la base de données est utilisée. Il est à noter qu'il est possible d'utiliser plus de 3 comptes dans le fichier de configuration. Il suffit d'ajouter d'autres blocs de variables tout en incrémentant l'indexnumber du tableau. - Renseignez les informations requises en fonction de la méthode choisie. - L'utilisation du niveau de l'utilisateur est optionnelle. Laissez la valeur vide si vous n'en avez pas l'utilité. - Pour l'ID de l'utilisateur, c'est pareil, c'est optionnel. Laissez la valeur vide si vous n'en avez pas l'utilité. - Ne modifiez pas les informations en dessous de 'End of phpSecurePages Configuration' ou dans les autres fichiers PHP, sauf si vous savez réellement ce que vous faites. Après tout ça, il ne reste plus qu'à ajouter le code nécessaire dans vos pages HTML comme décrit dans la section 'Comment ça marche' ci-dessous. ------ Comment ça marche ------ A des fins d'exemple sur le mode opératoire décrit, jetez un coup d'oeil sur les fichiers de test fournis. Ils ne sont d'ailleurs pas indispensables au bon fonctionnement de l'application, et de ce fait peuvent être supprimés si vous le désirez. Pour rendre un page sécurisée, sans utilisation de la notion de niveaux d'utilisateurs, ajoutez simplement les ligne suivantes en tout début de chaque page (toutes premières lignes) Ces lignes ne sont correctes bien évidemment que dans le cadre d'une installation par défaut. Si vous avez installé le programme ailleurs sur le serveur, il est indispensable d'adapter le chemin de façon à ce qu'il pointe vers le fichier de configuration. Quand quelqu'un essaiera désormais d'accéder à cette page, il/elle se verra d'abord demandé de ce connecter avant que la page ne soit affichée. --- Comment ça marche : les niveaux d'utilisateurs --- Si vous désirez utiliser différents niveaux d'utilisateurs, vous devez d'abord regrouper vos utilisateurs en groupes et donner à chacun de ces groupes un numéro (différent de 0). Ensuite vous devez décider quel groupe est autorisé à voir chacune des pages. Ensuite, à la place de l'exemple fourni ci-dessus, insérez les lignes suivantes (dans lesquelles sont définies les groupes autorisés) en tout début de chaque page : Exemple : Si vous avez 4 groupes d'utilisateurs et que seuls les groupes 1 et 3 sont autorisés à voir certaines pages, alors le code deviendrait : Mieux encore, depuis la version 0.19 il est possible de fournir le niveau d'utilisateur minimal requis pour accéder à une page. SI l'utilisateur a un niveau supérieur à celui demandé, il a accès à la page. Pour faire en sorte que tous les utilisateurs d'un niveau supérieur ou égal à 5 aient soient autorisés, le code suivant doit être utilisé : Les deux méthodes peuvent être utilisées conjointement, par exemple le code suivant donne accès aux utilisateurs de niveaux 2, 4 et 6 ou supérieurs : --- Comment ça marche : déconnexion --- Attention : le code suivant est nouveau depuis la version 0.15b, adaptez votre ancien code si vous aviez d'une version antérieure. Pour se déconnecter, il suffit simplement de faire un lien vers une page dans, laquelle vous avez ajouté le code suivant (il est aussi nécessaire de changer le chemin si vous avez installé le programme dans un autre répertoire) : --- Comment ça marche : les variables --- Après l'exécution du programme, les variables suivantes sont renseignées, et peuvent être utilisées dans le reste du code de votre page. Par exemple utilisez pour afficher l'ID de l'utilisateur, ou utilisez le pour interroger une base de données afin d'obtenir plus d'informations sur cet utilisateur. nom de connexion : $login mot de passe : $password niveau d'utilisateur : $userLevel code ID : $ID ------- MySQL ------ Si vous désirez utiliser MySQL pour stocker les informations de connexion (nom utilisateur/mot de passe), je vous suggère la structure suivante de base de données. Notez cependant que vus pouvez utiliser d'autres noms de base, tables ou colonnes. Il suffit d'ajuster ensuite le fichier de configuration. # MySQL-Dump # Database: phpSecurePages # Table structure for table 'phpSP_users' CREATE TABLE phpSP_users ( primary_key MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT, user VARCHAR(50) NOT NULL, password VARCHAR(32) NOT NULL, userlevel TINYINT(3), PRIMARY KEY (primary_key), KEY (user) ); Si vous utilisez phpSecurePages sur un serveur avec PHP3, les deux tables suivantes DOIVENT être créées. Ces deux tables ne sont pas utilisées avec PHP4. La table citée ci-dessus demeure cependant optionnelle. Contrairement à la table citée ci-dessus, seuls les noms de la base de données et des tables peuvent être modifiés (pas le nom des colonnes). # MySQL-Dump # Database : phpSecurePages # Table structure for tables 'phpSP_sessions' and 'phpSP_sessionVars' CREATE TABLE phpSP_sessions ( id CHAR(20) NOT NULL, LastAction DATETIME DEFAULT '0000-00-00 00:00:00' NOT NULL, ip CHAR(15) NOT NULL, userID MEDIUMINT(9), PRIMARY KEY (id), KEY id (id), UNIQUE id_2 (id) ); CREATE TABLE phpSP_sessionVars ( id MEDIUMINT(8) UNSIGNED DEFAULT '0' NOT NULL AUTO_INCREMENT, session VARCHAR(20) NOT NULL, name VARCHAR(32) NOT NULL, intval INT(10) UNSIGNED, strval VARCHAR(100), PRIMARY KEY (id), KEY sessionID (session), UNIQUE id (id) ); ------- langue ------ Ce programme peut être configuré en plusieurs langues à l'affichage. Modifiez la variable $language du fichier de configuration 'secure.php'pour utiliser un autre fichier de langue. Les langues suivantes sont supportées actuellement : - Arabe (Arabic) - Brésilien-Portugais (Brazilian-Portuguese) - Bulgare (Bulgarian) - Catalan - Tchèque (Czech) - Chinois (Chinese) Big5 - Chinois (Chinese) GB - Danois (Danish) - Hollandais (Dutch) - Anglais (English) - Estonien (Estonian) - Euskara - Finlandais (Finnish) (2 versions) - Français (French) - Allemand (German) - Islandais (Icelandic) - Indonésien (Indonesian) - Italien (Italian) - Japonais (Japanese) (2 versions) - Letton (Latvian) - Lituanien (Lithuanian) - Norvégien (Norwegian) - Polonais (Polish) - Portugais (Portuguese) - Roumain (Romanian) - Russe (Russian) - cp1251 (pour windows) - Russe (Russian) - KOI8-R (pour unix) - Serbe (Serbian) - Slovaque (Slovak) - Slovène (Slovenian) - Espagnol (Spanish) - Espagnol (Spanish) (Amérique latine) - Suédois (Swedish) J'apprécierais d'avoir d'autres fichiers de langues. Si votre langue n'est pas dans la liste, merci de bien vouloir traduire le fichier 'lng_english.php' et de me l'envoyer. Ainsi je pourrai l'ajouter à ce programme. ------- sécurité ------ Cette application est réalisée dans le but d'empêcher quiconque n'ayant pas les droits d'accès (nom d'utilisateur/mot de passe) d'accéder à vos pages. Lorsqu'il est correctement installé il est impossible de se connecter à votre site sans ces données. Cependant, cela ne sécurise pas à 100% l'accès à votre site (personnellement je pense que c'est impossible sur Internet). Faites moi connaître les aspects pour auxquels vous devez faire attention lorsque vous désirez sécuriser votre site. (Aucun de ces aspects ne doit être attribué à ce programme. Ils doivent concerner la sécurité de votre site en général). - Si vos pages ne sont pas interprétée par un interpréteur PHP, aucun contrôle d'accès ne peut avoir lieu. Tout peut donc être vu par tout le monde. Assurez vous d'avoir configuré votre serveur pour interpréter les fichiers PHP. - Si quelqu'un à la possibilité d'accéder de manière frauduleuse au contenu de votre serveur, il lui sera sans doute facile d'accéder également aux fichiers qu'il contient. Si c'est le cas cette sécurité sera également battue en brèche. Assurez vous bien que votre serveur est sécurisé et que vos applications sont à jour des dernières versions. - Les noms d'utilisateur et mots de passe sont transmises en clair sur Internet. cela signifie que si quelqu'un "sniffe" l'information, il sera en mesure d'obtenir les noms d'utilisateurs, les mots de passe et les données des pages. Pour avoir un environnement de connexion sécurisé (avec cryptage), contactez votre fournisseur d'accès. ------ licence ------ Gratuite pour un usage non commercial: Ce logiciel peut être utilisé gracieusement si son usage est limité à une utilisation non commerciale. Il est strictement interdit de vendre ce logiciel ou d'obtenir une quelconque rétribution en l'utilisant sans consentement préalable de l'auteur. Pour pouvoir utiliser ce logiciel à des fins commerciales comme décrites ci-avant vous devez au préalable contacter l'auteur pour mettre au point les modalités. Si ce logiciel est utilisée gratuitement, la ligne de 'copyright' du fichier 'interface.php' NE doit PAS être enlevée ou modifiée de telle manière qu'elle devienne moins (ou il-) lisible. Pour un usage commercial, il est désormais possible d'acheter une licence en ligne. Pour un site de petite taille le prix est de 20$ (dollars). Le moyen le plus simple est de l'acheter sur mon site web. Contactez moi à phpSecurePages@xs4all.nl pour toutes question concernant les licences. ------ Limites de responsabilités ------ En utilisant cette application, l'utilisateur reconnaît sa pleine responsabilité dans la sécurisation de ces pages. La responsabilité de l'auteur de ce logiciel est complètement dégagée en ce qui concerne la sécurité de vos pages ou les conséquences qui résulteraient d'un défaut de sécurité. Le logiciel est fourni "tel quel", sans garantie d'aucune sorte implicite ou explicite. En aucun cas la responsabilité de l'auteur n'est engagée pour toute réclamation, dommages ou autres évènements en liaison directe ou indirecte avec l'utilisation du logiciel. ------ Enfin ------ Notez que cette application est toujours en développement 'beta'. De ce fait l'auteur ne peut garantir l'absence de bogue ou défauts. Cependant soyez assurés que des tests intensifs ont été réalisés avant que cette application n'ait été distribuée. Les personnes suivantes m'ont aide en testant ou développant, merci à tous : Joshua Macadam, dfocus, Arno van de Kolk, Alejandro Vásquez, Richard M. Pavonarius, Fabiano R. Prestes, Matteo Bettineschi, Christian Schims, R. Tenenbaum, Stéphane Hoyau, Manuel Soriano, Dean Lin, Manuel Herrera, Mercury He, Henrik Blicher Hansen, Art Koval, Sorin Sfirlogea, Joan Manel López, Oskar, Dimiter Stankov, Frantisek Repkovsky, Markus Bernhard, Jan Hunter, Ingimundur Gunnar Nielsson, Martin Hubacek, Per Egil Kummervold, Panu Artimo, Markku Lappalainen, Suryo Sucipto, Janez Vrenjak, Mitsushi Sugimoto, Andris Jershovs, Marek Kotsulim Les dernières versions, plus d'informations, une démonstration en ligne sont accessibles sur : http://www.phpSecurePages.com (ou sur le site non officiel en Français http://www.ifrance.com/mercusot/phpSecurePages) Des informations complémentaires sont également disponibles sur FreshMeat.com: http://freshmeat.net/projects/phpSecurePages/ Remerciements Paul Kruyt