Accueil > Forum > > > > [sécurité] injection possible avec une simple écriture sur fichier dans le serveur ?
[sécurité] injection possible avec une simple écriture sur fichier dans le serveur ?
vendredi 4 juillet 2008 à 17:53:02 |
[sécurité] injection possible avec une simple écriture sur fichier dans le serveur ?

shinnokamui
|
Bonjour, J'ai un formulaire dans un site avec un champ où l'utilisateur peut entrer du texte, j'aimerai récupérer ce texte d'une manière sécurisé et l'écrire dans un fichier sur le serveur... Je me demandais si il était possible d'injecter du code "malveillant" avec un simple appel à une fonction d'écriture sur fichier, je c'est que c'est possible avec une requête SQL ou à l'affichage d'une variable $_GET modifié, mais y a t'il un risque avec un simple fputs(), et il faudrait donc protéger l'entrée de l'utilisateur par un $entrée= mysql_real_escape_string(htmlspecialchars($entrée)0); avant de l'écrire sur le fichier ? Aussi, j'en profite pour poser une question consernant ce genre d'injection, voici un petit code : $p = $p + 1; imaginons que la variable $p soit accessible par l'utilisateur (il s'agit d'un $_GET par exemple), est ce qu'il y a un risque d'injection si l'utilisateur modifie la variable $p par : ; echo $mot_de_passe_important; Voila, j'ai toujours quelques problèmes de comprehension avec les injections apparament, si quelqu'un pourrait m'éclairer spv 
|
|
samedi 5 juillet 2008 à 04:05:22 |
Re : [sécurité] injection possible avec une simple écriture sur fichier dans le serveur ?

PlayerMania
|
L'injection SQL est le fait de réussir a détourné une requete SQL de sa vrai fonction. Donc c'est très dangereux pour les bases de données. Il y à également d'autres types d'injections sur d'autres supports.
Au final, pour les éviter, il faut que tu échappe tes variables avant de les envoyer dans ta base ou tes fichiers grace à la fonction addslashes(); qui va donc ajouter un slashes devant chaque caractère qui pourrai permettre une injection. Et bien sure, c'est a toi aussi de faire du ménage dans les chaine, et voir les caractères que tu autorise ou non, fonctions strtr(); str_replace();
Après, lorsque tu affiche ces variables, tu leur applique un stripslashes(); qui va donc enlever les échappements.
Applique tjrs ce système, avec une config php register_globals à Off et tous les magic_quotes_... à Off, et tu n'auras jamais d'injection.
|
|
samedi 5 juillet 2008 à 04:19:27 |
Re : [sécurité] injection possible avec une simple écriture sur fichier dans le serveur ?

PlayerMania
|
mouais... je suis un peu parti à droite, à gauche, dsl...
$p = $p + 1;
Tant que $p sers à rien à part afficher le résultat d'un calcul specifique à la session de qqun, bin qui s'amuse le gonz à le changer lol... Mais si $p est plus tard dans le script enregistré quelque part dans un fichier via fputs() comme tu dis, la applique lui des filtres pour ne pas autorisé des caractères à tendance baliseuse ou autre, addslashes le aussi, au cas ou tu réimporterai en sql, tu risque plus une faille xss dans ton cas (selon ce que tu fais de tes données stocké dans tes fichiers)
|
|
samedi 5 juillet 2008 à 11:22:52 |
Re : [sécurité] injection possible avec une simple écriture sur fichier dans le serveur ?

shinnokamui
|
Merci ^^
Mais pour faire plus simple, est ce que appliquer les deux fonctions suivantes ne règle pas le problème d'injection ? (la première pour SQL, la deuxième pour le reste) vu que pour le faire en manuel (addslashes puis str_replace), il faudrait connaitre toutes les balises à éliminer, et ça me parait risqué si on s'y connait pas trop comme moi. Donc appliquer à toutes les entrées modifiables par l'utilisateur ceci ...
$entrée = mysql_real_escape_string(htmlspecialchars($entrée);
... ne réglerait pas tout les cas d'injections ?
Pour le fichier serveur, il s'agit juste d'un log, que je téléchargerait ensuite en FTP, il n'est pas utilisé dans le site en PHP. Donc si j'ai bien compris je ne risque rien avec le fputs() ?
Et pour les register_globals/magic_quotes_..., comment je modifis ça exactement ? je suis hébérgé chez Free...
J'en profite pour une nouvelle petite question ; si j'ai une variable numérique modifiable par l'user, est ce que $var = intvar($var); est risqué ? vu que quelque soit l'entrée, elle sera transformé en nombre, or la variable normalent est un nombre, donc aucun problèmes non ? (si l'user à tenté une injection, elle sera transformé en nombre ...)
|
|
samedi 5 juillet 2008 à 20:10:57 |
Re : [sécurité] injection possible avec une simple écriture sur fichier dans le serveur ?

PlayerMania
|
Réponse acceptée !
$entrée = mysql_real_escape_string(htmlspecialchars($entrée); Ces fonctions sont bien mais elle n'enlevent pas forcément tout ce que tu souhaiterais (éventuellement quelques danger pourrai subsister selon ton script), il y a aussi certaine chaine unicode qui sont dangereuses.
Bref, au final, toi tu es hors de danger de tout manière, vu que ton fichier log n'est jamais utilisé pour construire, calculer qqch dans ton site, donc tu es hors des risques meme si il contient que des caractères à tendance dangereuse, ils ne seront jamais interprétés.
Pour la config du serveur, ça va peu etre rude chez free, regarde du coté de la fonction iniset();
$var = intval($var); En fesant cela, c'est bien, tu fait une sorte de controle pour t'asssurer que c'est bien un chiffre qui doit etre retourné, essaye de mettre du charabia et des caractères louche dans $var et 0 sera retourné. "elle sera transformé en nombre" => si c'en est reelement un
Je te laisse ça, t'en aura surement besoin un jour lol : $special_char = array(" ", "!", ":", "?", "/", "$", "&", "%", "'", ",", "\"", "#", "{", "}", "(", ")", "[", "]", "|", "\\", "+", "=", "£", "¤", "µ", "*", "€", "<", ">", ";", "§", "^", "../", "./", "..\\", ".\\", "%00", "`", "~", "…", "ˆ", "‰"); $var = str_replace($special_char,'',$var); Enleve à ta guise ce que tu souhaites conserver et puis fait toi ta propre fonction specialchars.
|
|
samedi 5 juillet 2008 à 20:25:19 |
Re : [sécurité] injection possible avec une simple écriture sur fichier dans le serveur ?

shinnokamui
|
Merci pour ta réponse, je pense avoir bien compris la chose maintenant ^^
A+
|
|
Cette discussion est classée dans : fichier, possible, simple, utilisateur, injection
Répondre à ce message
Sujets en rapport avec ce message
trouver mon erreur ! [ par tonyo ]
Voila mon code qui doit me permettre de comparer des nombres entrés par l'utilisateur à la page précédente et ceux contenus dans un fichier .txt. l'or
Help me....travaille en php "simple" mais payé.....!! [ par Maniac ]
Salut,voila je n'y connais rien du tout en php, mais je dois "simplement" faire un forum pour un client pour qui je developpe son site...Si qq1 savait
Upload de fichier possible sur FREE ??? [ par Phrogg ]
Hello, J'utilise un script PHP dans lequel j'utilise l'instruction HTML Je récupère ensuite le fichier en PHP dans la variable $fichier. Je peux copi
nom d'utilisateur ?!? [ par niceboy ]
Hello !J'aimerais savoir si c'est possible d'obtenir le nom d'utilisateur Windows des visiteurs avec mes pages web, en PHP ou dans un autre langage, j
Double téléchargement de fichier [ par adeline63 ]
Bonjour,J'utilise un script php qui, après avoir créé 2 fichiers txt, doit permettre à l'utilisateur de les télécharger : l'un après l'autre, en même
cacher [ par ekinoks ]
g 3 pt kestion ... ;-/ - est t'il possible de cacher la destination d'un téléchargement C.A.D que la personne peu télécharger le fichier mais ne peu
quit [ par niketou ]
Salut,j'ai cree un script qui cree un fichier quand l'utilisateur ce connecte a la page.L'un d'entre vous sait comment faire pour que des que l'utilis
Envoyer des données fournies par l'utilisateur d'un fichier à un autre [ par DreamPush ]
Je voudrais envoyer des données par un formulaire HTML à partir d'un fichier nommé "Envoyer.php" à un fichier nommé "Recevoir.php". Que dois-je écrire
création d'un fichier word sous linux [ par zarbiman ]
Bonjour à tous! est-ce possible de générer un fichier word (ou excel) sous linux? si possible sans rien installer vu que je suis sur un terminal et qu
Upload a partir d'un site ? Possible??? [ par supergrey ]
Bonjour, je voudrais savoir s'il est possible d'uploader un fichier a partir d'un site web exmple: http://www.monsite.com/fichier.jpgvers le serveur
Livres en rapport
|
Derniers Blogs
ROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGEROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGE par Matthieu MEZIL
Si vous utilisez Roslyn et que vous vous voulez vous simplifier le code du code rewriter, je vous conseille d'installer mon NuGet package RoslynHelper ....(read more) ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|