@tse_jc
erreur de ta part, mon cher tse_jc:
Une table temporaire sera immédiatement effacée dès que la connexion se termine. Cela signifie que vous pouvez utiliser le même nom de table temporaire depuis deux connexions différentes sans risque de conflit entre les connexions. Vous pouvez aussi utiliser une table temporaire qui a le même nom qu'une table existante (la table existante est alors cachée tant que dure la table temporaire).
j'ai bien dit: "une table temporaire avec le moteur memory"
extrait de la doc
après, je suis pas ultra pointu en transactionnel SGBD subtile, mais je te rassure j'ai suffisamment bouffé de programmation processus, threads et autres sémaphores en c/c++ (linux et windows) pour bien saisir les concepts bas niveaux derrière
mais je crois qu'on a gravement dérivé du sujet de base
@ascito
là encore on revient à ce que moi ou tse_jc on a déjà dit
ça dépend ce que tu vises...
tu peux passer une chaine de caractère qui ne fera à priori rien en php mais qui une fois interprété:
- en sql va permettre de s'attaquer à la bd...
- en html va inclure du code malveillant
tiens une faille que pas tant de gens connaissent:
beaucoup de fonction codées en c en dessous interprètent un caractère dont le code ascii vaut 0 comme une fin de chaine mais pas php
si je remplace un de tes formulaires pour tenter de charger un fichier sur ton serveur parce que ton script le permet...
echo"machin.php\0truc.jpg";
ça affiche bien:
mais en fait pas mal de commandes liées aux fichiers vont voir:
j'ai retesté cette vulnérabilité avec la version 5.3.9 de php, elle ne passe plus mais il faut se méfier avec des versions antérieures...
d'où ne jamais croire l'extension d'un fichier et toujours détruire un fichier dont le nom contient un \0 (là tu peux être sur que c'est pas ce que ça dit être)
toujours mettre les fichiers uploadés dans un répertoire ou l'exécution est impossible, jamais à 777 comme on le voit dans certains scripts
ne jamais faire d'actions sur les fichiers via un script qui prends le nom du fichier (ou dossier) en $_POST ou $_GET sans moult précautions et vérification
autre truc pas toujours connu le réglage du php pour la génération automatique des variables venant de données externes($_POST, $_GET, ...)
à la génération de ces tableaux super globaux tu as selon le réglage éventuellement la génération automatiques de tout un tas de variables:
$_GET['user'] ou $_POST['user'] vont automatiquement générer une variable $user...
c'est sensé facilité la vie des programmeurs mais en fait c'est juste un trou de sécurité
car admettons que tu n'initialises pas systématiquement la valeur de $user de ton code je te fais pas un dessin de ce qui se passe à l'utilisation...
donc ne jamais utiliser de variable sans les initialiser systématiquement
voilà des exemples d'injection de valeur coté php
tu as même une faille majeur de sécurité qui permet de lire le code php sur des sites qui exécutent php en mode cgi au lieu d'exécuter le code... lire ça en anglais
on pourrait citer plein d'autres choses mais ça ira bien déjà
bref c'est pas parce que tu ne vois pas forcément
ah oui, toujours mettre un index.html même vide dans tous les répertoires ou faire un .htacces à la racine du site qui empêche de lister ce qu'il y a dans les répertoires...
si on sait faire utiliser l'url rewriting et utiliser de fausses extensions (html au lieu de php par exemple) ou aucune pour empêcher le mec de facilement savoir quel langage tu utilises...
Partager