NB1 : xpost fr.comp.lang.php et fu2 fr.comp.securite (les deux sont
modérés).
Après moult tergiversations, je laisse le fu2 sur fr.comp.securite car
on dépasse le cadre du langage PHP et que les failles à débattre sont
majoritairement
humaines et non liées au langage. J'encourage plus que vivement les
habituels lecteurs/contributeurs de fclphp à suivre la discussion sur
fcs (et à le
consulter régulièrement une fois cette bonne habitude prise ;-)...)
Je me porte volontaire pour essayer de faire une synthèse de la
discussion qu'on pourra intégrer dans l'une des deux FAQs et référencer
depuis l'autre.
NB 2 : Cet article étant long et fcs étant modéré, je rappelle aux
contributeurs qui seraient tentés de le citer intégralement que leur
réponse n'a aucune chance d'être publiée. Si vous avez un doute sur la
bonne manière de répondre sur un forum usenet, usez et abusez de
http://www.giromini.org/usenet-fr/repondre.html
Suite aux divers questions/trolls sur la sécurité des applications
écrites en PHP dans une optique web, je lance un petit débat sur les
pratiques de codage en PHP apportant ou non un vrai "plus" de sécurité.
J'entends par "faille de sécurité" une erreur de codage ou de conception
qui permet de passer outre une procédure d'authentification, d'avoir
accès à des données non publiques, ou de modifier/détruire des
données/des scripts, exclusivement dans une optique web, avec php comme
langage dans mon esrit à l'origine, mais on pourra élargir à d'autres
langages/plateformes de web dynamique comme perl, jsp, asp, .net etc...
Les questions sont les suivantes :
Question 1 :
Quelles sont les principales failles existantes dans les scripts PHP que
vous avez rencontrées ? Quels risques induisaient-elles ? Comment les
avez vous corrigées ?
Question 2 :
Quelles sont les principales fausses vérifications de sécurité que vous
connaissez ? Comment peut-on les contourner (indiquer la difficulté
pour y arriver) ou pourquoi ne sont-elles pas fiables ou non applicables
sur le principe même ?
Question 3 :
Pensez vous à des failles théoriques potentielles que vous n'avez pas
encore vérifiées en pratique ?
------------
Je commence bien entendu :
Question 1 (failles existantes):
a) variables non itilialisées en register_globals=On (injection de
variables)
Risque : principalement accès non autorisés, mais tout est possible.
Correction : initialiser ses variables (Sans blague...), ou utiliser des
fonctions/des objets car ils snt insensibles à l'injection de variables.
Piège : croire qu'on est toujours en register_globals=Off et coder comme
un cochon.
Correction : idem.
b) include dynamiques (ex include($toto);)
Risque : exécution sur sa machine de n'importe quel code souhaité par
l'attaquant (installation de back-doors, défigurations, etc....
Correction : ne pas utiliser d'includes dynamiques ou vérifier que le
fichier est bien local si hébergement dédié. Renforcer les restrictions
d'include_path. Attention, depuis php5, file_exists peut éventuellement
renvoyer TRUE sur des fichiers distants (à restester, je n'ai pas poussé
plus loin que le "tip php5" du manuel).
Piège : essayer de se renforcer avec include($toto.'.php');
Contournement : $toto="[target]/script_sans_extension"; par exemple.
c) injection SQL.
Risque : accès non autorisés, corruption de données
Correction : filtrage des variables, échappement de ' et " par le
caractère ad hoc pour la base de données (\ pour mysql, ' pour sybase
etc...)
d) confiance dans les variables venant de l'extérieur. Par exemple,
recalculer une facture à payer en utilisant un prix transmis par un
champ HIDDEN ou calculé en javascript. Ne pas revalider la donnée parce
qu'elle l'a été en JavaScript.
Risque : multiples. Accès non autorisés, corruption de données, etc...
Correction : ne faire confiance qu'à des données conservées côté serveur
(refaire une requête sgbd pour obtenir le prix de l'article, les frais
de port, etc...). Faire avant tout les validations de cohérence des
données côté serveur et non en javascript.
e) uploads de fichiers.
Outre les failles du langage php lui même qui apparaissent parfois à ce
sujet, les tutoriels que j'ai vus n'insistent pas assez sur le besoin de
faire attention aux extensions autorisées par rapport aux extensions
parsées sur le serveur. Si le serveur considère comme du code php le
fichier toto.php.txt, il faut interdire tout nom de fichier contenant
.php. dans son nom. Ceci doit venir en complément d'une liste
restrictive d'extensions explicitement autorisées (.jpg, .gif, .doc
etc...). Je suis plus particulièrement intéressé sur ce point par les
vérification purement serveur permettant de vérifier le type de fichier
traité.
f) utilisation de header("Location:...)
Algo (erronné)
1. vérification de cohérence
2.1 si problème alors header("Location:bad.php"); // jusqu'ici tout va
bien
2.2 si ok alors header("Location:ok.php"); // et plouf dommage, il
suffit d'appeler directement ok.php avec n'importe quels arguments et
tout passe.
Correction :
2.1 si problème require('erreur.php'); exit();
2.2 (sinon) require('traitement.php'); // rappel : toute variable locale
est alors définie dans traitement.php
g) appels systèmes non filtrés
Dans le même genre que les includes dynamiques, passer directement la
saisie de l'utilisateur à exec() ou system(). Personnellement, j'ai
tendance à interdire tout exécution de code directe, filtrée ou par (je
remplace les actions possibles par des cases à cocher et j'exécute ce
qu'il faut). Peut-être est-ce par trop parano et que 'lon peut autoriser
certaines choses.
Risques : donner la main sur votre machine à un attaquant.
Correction : ne jamais passer quoi que ce soit qui vient de l'extérieur
en argument, mais c'est parfois trop restrictif.
Question 2 (fausses vérifications):
a) vérifier que la donnée a bien été transmise par la méthode POST sous
prétexte qu'elle vient d'un formulaire.
Contournement : il suffit d'envoyer une donnée vérolée par post, que ce
soit en modifiant du html ou en utilisant la librairie CURL par exemple
pour de l'attaque massive. C'est le contenu de la donnée qu'il faut
vérifier, pas son mode de transmission.
b) Vérifier que les données viennent bien "de mon site" en utilisant
HTTP_REFERRER.
Une idée (qui n'est pas de moi) et que je n'ai pas réussi à mettre en
oeuvre : injection SQL par des entiers ou plus généralement injection
SQL insensible aux habituelles vérifications sur les quotes.
Soit la requête : "UPDATE .... WHERE id=$i " avec id de type entier
(typiquement : autoincrement)
But de la manip : injecter dans $i une chaîne transformant la requête en
(par exemple):
"UPDATE ... WHERE id=0 OR 1=1"
(requête qui va corrompre les données en impactant tous les rangs de la
table)
Moyen sous mysql : utiliser la fonction mysql CHAR et complèter la
chaîne en hexa. Mais je n'ai pas réussi à le faire, je me prends ou du
syntax error ou une chaîne non interprêtée.
Espérant faire avancer le shimili... le shcibi... le biniou.
Ce n'était pas avec la GD lib mais avec le type mime retourné par getimagesize. J'ai essayé et il donne bien un type image/jpeg. Niké mes vérifs d'upload d'image :-/...
On en est resté là sur les uploads de fichiers :
- si possible, ne pas donner la possibilité de les appeler depuis l'extérieur en ne les stockant pas dans l'arborescence doc_root. Ceci est je crains rarement possible, en tous cas, absolument pas dans le cadre d'un CMS par exemple.
- filtrer le nom du fichier pour vérifier par rapport à la configuration du serveur web local qu'il ne sera pas exécuté côté serveur si appelé en direct dans l'URL. Le problème est que j'ai déjà vu chez un hébergeur que totophptutu.jpg est exécuté par php.
- on a vu que tester le type de fichier n'apporte pas grand chose si ce n'est rien du tout, même en essayant d'analyser le fichier lui même côté serveur.
Pensez vous à d'autres failles ou d'autres protections au sujet des uploads de fichiers ?
JG
Re,
Ce n'était pas avec la GD lib mais avec le type mime retourné par
getimagesize. J'ai essayé et il donne bien un type image/jpeg.
Niké mes vérifs d'upload d'image :-/...
On en est resté là sur les uploads de fichiers :
- si possible, ne pas donner la possibilité de les appeler depuis
l'extérieur en ne les stockant pas dans l'arborescence doc_root. Ceci
est je crains rarement possible, en tous cas, absolument pas dans le
cadre d'un CMS par exemple.
- filtrer le nom du fichier pour vérifier par rapport à la configuration
du serveur web local qu'il ne sera pas exécuté côté serveur si appelé en
direct dans l'URL. Le problème est que j'ai déjà vu chez un hébergeur
que totophptutu.jpg est exécuté par php.
- on a vu que tester le type de fichier n'apporte pas grand chose si ce
n'est rien du tout, même en essayant d'analyser le fichier lui même côté
serveur.
Pensez vous à d'autres failles ou d'autres protections au sujet des
uploads de fichiers ?
Ce n'était pas avec la GD lib mais avec le type mime retourné par getimagesize. J'ai essayé et il donne bien un type image/jpeg. Niké mes vérifs d'upload d'image :-/...
On en est resté là sur les uploads de fichiers :
- si possible, ne pas donner la possibilité de les appeler depuis l'extérieur en ne les stockant pas dans l'arborescence doc_root. Ceci est je crains rarement possible, en tous cas, absolument pas dans le cadre d'un CMS par exemple.
- filtrer le nom du fichier pour vérifier par rapport à la configuration du serveur web local qu'il ne sera pas exécuté côté serveur si appelé en direct dans l'URL. Le problème est que j'ai déjà vu chez un hébergeur que totophptutu.jpg est exécuté par php.
- on a vu que tester le type de fichier n'apporte pas grand chose si ce n'est rien du tout, même en essayant d'analyser le fichier lui même côté serveur.
Pensez vous à d'autres failles ou d'autres protections au sujet des uploads de fichiers ?
JG
Nicob
On Fri, 03 Dec 2004 14:37:55 +0000, John Gallet wrote:
Et donc tu as une fonction/méthode html_output(), pdf_output() pour autant qu'on soit capable d'envoyer du code offensif dans un pdf (??? Rassurez moi, ça existe pas encore, hein ? Hein ?)
Ben si : il est possible de générer des documents PDF mal-formés et d'espérer que le lecteur employé soit vulnérable à la faille visée.
De toutes façons, mettons nous dans un cas simple : seulement des interfaces HTML, en entrée comme en sortie, avec une base au milieu. Il faut nécessairement : - filtrer les entrées contre les injections SQL
J'ai suivi la discussion de loin, mais je trouve plus simple d'éliminer complètement les risques de SQL-Injection (par exemple avec les requêtes préparées de MySQL) que de se faire ch*er à filtrer.
- purger les champs texte "riches" de tout code offensif dormant (avant ou après stockage en SGBD).
Si plusieurs formats de sortie possibles, filtrage en sortie. Sinon, filtrage "au plus tôt". Dans l'idéal, ceinture & bretelles ...
Btw, il faut aussi penser au cas où on a plusieurs canaux d'entrée. Par exemple sur un site de CV où il est possible de soumettre depuis le site Web et depuis le Minitel :)
Nicob
On Fri, 03 Dec 2004 14:37:55 +0000, John Gallet wrote:
Et donc tu as une fonction/méthode html_output(), pdf_output() pour
autant qu'on soit capable d'envoyer du code offensif dans un pdf (???
Rassurez moi, ça existe pas encore, hein ? Hein ?)
Ben si : il est possible de générer des documents PDF mal-formés et
d'espérer que le lecteur employé soit vulnérable à la faille visée.
De toutes façons, mettons nous dans un cas simple : seulement des
interfaces HTML, en entrée comme en sortie, avec une base au milieu. Il
faut nécessairement :
- filtrer les entrées contre les injections SQL
J'ai suivi la discussion de loin, mais je trouve plus simple d'éliminer
complètement les risques de SQL-Injection (par exemple avec les requêtes
préparées de MySQL) que de se faire ch*er à filtrer.
- purger les champs texte "riches" de tout code offensif dormant (avant
ou après stockage en SGBD).
Si plusieurs formats de sortie possibles, filtrage en sortie. Sinon,
filtrage "au plus tôt". Dans l'idéal, ceinture & bretelles ...
Btw, il faut aussi penser au cas où on a plusieurs canaux d'entrée. Par
exemple sur un site de CV où il est possible de soumettre depuis le site
Web et depuis le Minitel :)
On Fri, 03 Dec 2004 14:37:55 +0000, John Gallet wrote:
Et donc tu as une fonction/méthode html_output(), pdf_output() pour autant qu'on soit capable d'envoyer du code offensif dans un pdf (??? Rassurez moi, ça existe pas encore, hein ? Hein ?)
Ben si : il est possible de générer des documents PDF mal-formés et d'espérer que le lecteur employé soit vulnérable à la faille visée.
De toutes façons, mettons nous dans un cas simple : seulement des interfaces HTML, en entrée comme en sortie, avec une base au milieu. Il faut nécessairement : - filtrer les entrées contre les injections SQL
J'ai suivi la discussion de loin, mais je trouve plus simple d'éliminer complètement les risques de SQL-Injection (par exemple avec les requêtes préparées de MySQL) que de se faire ch*er à filtrer.
- purger les champs texte "riches" de tout code offensif dormant (avant ou après stockage en SGBD).
Si plusieurs formats de sortie possibles, filtrage en sortie. Sinon, filtrage "au plus tôt". Dans l'idéal, ceinture & bretelles ...
Btw, il faut aussi penser au cas où on a plusieurs canaux d'entrée. Par exemple sur un site de CV où il est possible de soumettre depuis le site Web et depuis le Minitel :)
Nicob
Nicob
On Fri, 03 Dec 2004 18:08:19 +0000, John Gallet wrote:
- si possible, ne pas donner la possibilité de les appeler depuis l'extérieur en ne les stockant pas dans l'arborescence doc_root. Ceci est je crains rarement possible, en tous cas, absolument pas dans le cadre d'un CMS par exemple.
Certains sites permettent l'upload de fichiers arbitraires, ces fichiers étant stockés en base de données (et non pas sur disque). Ainsi, une bonne partie des problèmes d'exécution de code suite à un upload en dessous de la webroot sont résolus.
- filtrer le nom du fichier pour vérifier par rapport à la configuration du serveur web local qu'il ne sera pas exécuté côté serveur si appelé en direct dans l'URL. Le problème est que j'ai déjà vu chez un hébergeur que totophptutu.jpg est exécuté par php.
Plus simplement, mettre ces fichiers uploadés dans un répertoire dédié et y placer un .htaccess avec "AddType text/html .php" !
- on a vu que tester le type de fichier n'apporte pas grand chose si ce n'est rien du tout, même en essayant d'analyser le fichier lui même côté serveur.
Ca, c'est sûr ...
Nicob
On Fri, 03 Dec 2004 18:08:19 +0000, John Gallet wrote:
- si possible, ne pas donner la possibilité de les appeler depuis
l'extérieur en ne les stockant pas dans l'arborescence doc_root. Ceci
est je crains rarement possible, en tous cas, absolument pas dans le
cadre d'un CMS par exemple.
Certains sites permettent l'upload de fichiers arbitraires, ces fichiers
étant stockés en base de données (et non pas sur disque). Ainsi, une
bonne partie des problèmes d'exécution de code suite à un upload en
dessous de la webroot sont résolus.
- filtrer le nom du fichier pour vérifier par rapport à la
configuration du serveur web local qu'il ne sera pas exécuté côté
serveur si appelé en direct dans l'URL. Le problème est que j'ai
déjà vu chez un hébergeur que totophptutu.jpg est exécuté par php.
Plus simplement, mettre ces fichiers uploadés dans un répertoire dédié
et y placer un .htaccess avec "AddType text/html .php" !
- on a vu que tester le type de fichier n'apporte pas grand chose si ce
n'est rien du tout, même en essayant d'analyser le fichier lui même
côté serveur.
On Fri, 03 Dec 2004 18:08:19 +0000, John Gallet wrote:
- si possible, ne pas donner la possibilité de les appeler depuis l'extérieur en ne les stockant pas dans l'arborescence doc_root. Ceci est je crains rarement possible, en tous cas, absolument pas dans le cadre d'un CMS par exemple.
Certains sites permettent l'upload de fichiers arbitraires, ces fichiers étant stockés en base de données (et non pas sur disque). Ainsi, une bonne partie des problèmes d'exécution de code suite à un upload en dessous de la webroot sont résolus.
- filtrer le nom du fichier pour vérifier par rapport à la configuration du serveur web local qu'il ne sera pas exécuté côté serveur si appelé en direct dans l'URL. Le problème est que j'ai déjà vu chez un hébergeur que totophptutu.jpg est exécuté par php.
Plus simplement, mettre ces fichiers uploadés dans un répertoire dédié et y placer un .htaccess avec "AddType text/html .php" !
- on a vu que tester le type de fichier n'apporte pas grand chose si ce n'est rien du tout, même en essayant d'analyser le fichier lui même côté serveur.
Ca, c'est sûr ...
Nicob
Cedric Blancher
Le Sun, 05 Dec 2004 18:15:57 +0000, Nicob a écrit :
Plus simplement, mettre ces fichiers uploadés dans un répertoire dédié et y placer un .htaccess avec "AddType text/html .php" !
Les placer en dehors de la webroot est une excellente solution aussi.
-- From: Adele Demaziere Subject: Areuh, areuh Date: Tue, 10 Aug 1999 15:10:02 +0200 -+- Adele in Guide du linuxien pervers - "Ouiiiiiiiiiiiiiiiiin."-+-
Le Sun, 05 Dec 2004 18:15:57 +0000, Nicob a écrit :
Plus simplement, mettre ces fichiers uploadés dans un répertoire dédié
et y placer un .htaccess avec "AddType text/html .php" !
Les placer en dehors de la webroot est une excellente solution aussi.
--
From: Adele Demaziere <adele@sources.org>
Subject: Areuh, areuh
Date: Tue, 10 Aug 1999 15:10:02 +0200
-+- Adele in Guide du linuxien pervers - "Ouiiiiiiiiiiiiiiiiin."-+-
Le Sun, 05 Dec 2004 18:15:57 +0000, Nicob a écrit :
Plus simplement, mettre ces fichiers uploadés dans un répertoire dédié et y placer un .htaccess avec "AddType text/html .php" !
Les placer en dehors de la webroot est une excellente solution aussi.
-- From: Adele Demaziere Subject: Areuh, areuh Date: Tue, 10 Aug 1999 15:10:02 +0200 -+- Adele in Guide du linuxien pervers - "Ouiiiiiiiiiiiiiiiiin."-+-
Christophe Casalegno
Nicob wrote:
ces fichiers étant stockés en base de données (et non pas sur disque). Ainsi, une bonne partie des problèmes d'exécution de code suite à un upload en dessous de la webroot sont résolus.
Certes, mais l'impact sur les performances est vraiment catastrophique.
amicalement,
-- Christophe Casalegno | Groupe Digital Network | UIN : 153305055 http://www.digital-network.net | http://www.securite-reseaux.com TISTC | OFREMHI | IIHEC | IICRAI | CIRET-AVT | KESAC | IDMEF Forum Technical director | Security Intrusion techniques & infowar specialist.
Nicob wrote:
ces fichiers
étant stockés en base de données (et non pas sur disque). Ainsi, une
bonne partie des problèmes d'exécution de code suite à un upload en
dessous de la webroot sont résolus.
Certes, mais l'impact sur les performances est vraiment catastrophique.
amicalement,
--
Christophe Casalegno | Groupe Digital Network | UIN : 153305055
http://www.digital-network.net | http://www.securite-reseaux.com
TISTC | OFREMHI | IIHEC | IICRAI | CIRET-AVT | KESAC | IDMEF Forum
Technical director | Security Intrusion techniques & infowar specialist.
ces fichiers étant stockés en base de données (et non pas sur disque). Ainsi, une bonne partie des problèmes d'exécution de code suite à un upload en dessous de la webroot sont résolus.
Certes, mais l'impact sur les performances est vraiment catastrophique.
amicalement,
-- Christophe Casalegno | Groupe Digital Network | UIN : 153305055 http://www.digital-network.net | http://www.securite-reseaux.com TISTC | OFREMHI | IIHEC | IICRAI | CIRET-AVT | KESAC | IDMEF Forum Technical director | Security Intrusion techniques & infowar specialist.
Nicob
On Sun, 05 Dec 2004 19:17:22 +0000, Christophe Casalegno wrote:
Certes, mais l'impact sur les performances est vraiment catastrophique.
Un vieux proverbe pertuisien dit qu'on ne peut avoir le beurre, l'argent du beurre et le c*l de la fermière. Cela correspond pile-poil à notre situation, il me semble :)
Nicob
On Sun, 05 Dec 2004 19:17:22 +0000, Christophe Casalegno wrote:
Certes, mais l'impact sur les performances est vraiment catastrophique.
Un vieux proverbe pertuisien dit qu'on ne peut avoir le beurre, l'argent
du beurre et le c*l de la fermière. Cela correspond pile-poil à notre
situation, il me semble :)
On Sun, 05 Dec 2004 19:17:22 +0000, Christophe Casalegno wrote:
Certes, mais l'impact sur les performances est vraiment catastrophique.
Un vieux proverbe pertuisien dit qu'on ne peut avoir le beurre, l'argent du beurre et le c*l de la fermière. Cela correspond pile-poil à notre situation, il me semble :)
Nicob
Nicob
On Sun, 05 Dec 2004 19:15:43 +0000, Cedric Blancher wrote:
Le Sun, 05 Dec 2004 18:15:57 +0000, Nicob a écrit :
Plus simplement, mettre ces fichiers uploadés dans un répertoire dédié et y placer un .htaccess avec "AddType text/html .php" !
Les placer en dehors de la webroot est une excellente solution aussi.
Dans le cadre d'un site Web permettant l'échange de fichiers, on risque d'être embêté si les fichiers ne sont pas sous la webroot.
Nicob
On Sun, 05 Dec 2004 19:15:43 +0000, Cedric Blancher wrote:
Le Sun, 05 Dec 2004 18:15:57 +0000, Nicob a écrit :
Plus simplement, mettre ces fichiers uploadés dans un répertoire
dédié et y placer un .htaccess avec "AddType text/html .php" !
Les placer en dehors de la webroot est une excellente solution aussi.
Dans le cadre d'un site Web permettant l'échange de fichiers, on risque
d'être embêté si les fichiers ne sont pas sous la webroot.
On Sun, 05 Dec 2004 19:15:43 +0000, Cedric Blancher wrote:
Le Sun, 05 Dec 2004 18:15:57 +0000, Nicob a écrit :
Plus simplement, mettre ces fichiers uploadés dans un répertoire dédié et y placer un .htaccess avec "AddType text/html .php" !
Les placer en dehors de la webroot est une excellente solution aussi.
Dans le cadre d'un site Web permettant l'échange de fichiers, on risque d'être embêté si les fichiers ne sont pas sous la webroot.
Nicob
Cedric Blancher
Le Sun, 05 Dec 2004 21:34:09 +0000, Nicob a écrit :
Les placer en dehors de la webroot est une excellente solution aussi. Dans le cadre d'un site Web permettant l'échange de fichiers, on risque
d'être embêté si les fichiers ne sont pas sous la webroot.
Embêté parce qu'il va falloir coder un frontend permettant de les récupérer, mais ça se fait fort bien. Pas mal d'applis PHP (des forums en particulier) le permettent.
-- BOFH excuse #293:
You must've hit the wrong any key.
Le Sun, 05 Dec 2004 21:34:09 +0000, Nicob a écrit :
Les placer en dehors de la webroot est une excellente solution aussi.
Dans le cadre d'un site Web permettant l'échange de fichiers, on risque
d'être embêté si les fichiers ne sont pas sous la webroot.
Embêté parce qu'il va falloir coder un frontend permettant de les
récupérer, mais ça se fait fort bien. Pas mal d'applis PHP (des forums
en particulier) le permettent.
Le Sun, 05 Dec 2004 21:34:09 +0000, Nicob a écrit :
Les placer en dehors de la webroot est une excellente solution aussi. Dans le cadre d'un site Web permettant l'échange de fichiers, on risque
d'être embêté si les fichiers ne sont pas sous la webroot.
Embêté parce qu'il va falloir coder un frontend permettant de les récupérer, mais ça se fait fort bien. Pas mal d'applis PHP (des forums en particulier) le permettent.
-- BOFH excuse #293:
You must've hit the wrong any key.
Christophe Casalegno
Nicob wrote:
On Sun, 05 Dec 2004 19:17:22 +0000, Christophe Casalegno wrote:
Certes, mais l'impact sur les performances est vraiment catastrophique.
Un vieux proverbe pertuisien dit qu'on ne peut avoir le beurre, l'argent du beurre et le c*l de la fermière. Cela correspond pile-poil à notre situation, il me semble :)
Ouip :) cela dit je préfère faire un petit peu plus d'effort sur la qualité du code et le renforcement de la sécurité du système que diviser la vitesse de mon application par 7 :)
amicalement,
-- Christophe Casalegno | Groupe Digital Network | UIN : 153305055 http://www.digital-network.net | http://www.securite-reseaux.com TISTC | OFREMHI | IIHEC | IICRAI | CIRET-AVT | KESAC | IDMEF Forum Technical director | Security Intrusion techniques & infowar specialist.
Nicob wrote:
On Sun, 05 Dec 2004 19:17:22 +0000, Christophe Casalegno wrote:
Certes, mais l'impact sur les performances est vraiment catastrophique.
Un vieux proverbe pertuisien dit qu'on ne peut avoir le beurre, l'argent
du beurre et le c*l de la fermière. Cela correspond pile-poil à notre
situation, il me semble :)
Ouip :) cela dit je préfère faire un petit peu plus d'effort sur la qualité
du code et le renforcement de la sécurité du système que diviser la vitesse
de mon application par 7 :)
amicalement,
--
Christophe Casalegno | Groupe Digital Network | UIN : 153305055
http://www.digital-network.net | http://www.securite-reseaux.com
TISTC | OFREMHI | IIHEC | IICRAI | CIRET-AVT | KESAC | IDMEF Forum
Technical director | Security Intrusion techniques & infowar specialist.
On Sun, 05 Dec 2004 19:17:22 +0000, Christophe Casalegno wrote:
Certes, mais l'impact sur les performances est vraiment catastrophique.
Un vieux proverbe pertuisien dit qu'on ne peut avoir le beurre, l'argent du beurre et le c*l de la fermière. Cela correspond pile-poil à notre situation, il me semble :)
Ouip :) cela dit je préfère faire un petit peu plus d'effort sur la qualité du code et le renforcement de la sécurité du système que diviser la vitesse de mon application par 7 :)
amicalement,
-- Christophe Casalegno | Groupe Digital Network | UIN : 153305055 http://www.digital-network.net | http://www.securite-reseaux.com TISTC | OFREMHI | IIHEC | IICRAI | CIRET-AVT | KESAC | IDMEF Forum Technical director | Security Intrusion techniques & infowar specialist.
Nicob
On Sun, 05 Dec 2004 21:37:27 +0000, Cedric Blancher wrote:
Embêté parce qu'il va falloir coder un frontend permettant de les récupérer, mais ça se fait fort bien.
Perso, je préfère ma solution. L'accès à un système de fichiers situé en dehors de la webroot est souvent problématique d'un point de vue sécurité, et ma solution a l'avantage d'être très simple côté code, vu qu'il n'y a pas de code.
Dans ton cas, il faut que le code d'upload *et* le code de download soit sûr. Dans le mien, si le code d'upload est OK et que le .htaccess est présent, tout est OK.
Nicob
On Sun, 05 Dec 2004 21:37:27 +0000, Cedric Blancher wrote:
Embêté parce qu'il va falloir coder un frontend permettant de les
récupérer, mais ça se fait fort bien.
Perso, je préfère ma solution. L'accès à un système de fichiers
situé en dehors de la webroot est souvent problématique d'un point de
vue sécurité, et ma solution a l'avantage d'être très simple côté
code, vu qu'il n'y a pas de code.
Dans ton cas, il faut que le code d'upload *et* le code de download soit
sûr. Dans le mien, si le code d'upload est OK et que le .htaccess est
présent, tout est OK.
On Sun, 05 Dec 2004 21:37:27 +0000, Cedric Blancher wrote:
Embêté parce qu'il va falloir coder un frontend permettant de les récupérer, mais ça se fait fort bien.
Perso, je préfère ma solution. L'accès à un système de fichiers situé en dehors de la webroot est souvent problématique d'un point de vue sécurité, et ma solution a l'avantage d'être très simple côté code, vu qu'il n'y a pas de code.
Dans ton cas, il faut que le code d'upload *et* le code de download soit sûr. Dans le mien, si le code d'upload est OK et que le .htaccess est présent, tout est OK.