Sammuel

  • Nombre de sujets
    26
  • Nombre de messages
    114
  • Nombre de commentaires
    1
  • Nombre de news
    Aucune
  • Niveau en PHP
    Débutant

Ses derniers messages sur les forums

Sammuel
le 04/08/2008 à 02:09
Faire une requête en fonction de l'id du membre
Vu que tu créé $_SESSION['login'] après avoir vérifié que le compte existe bien via une requête SQL, comment pourrait t'elle être non-sûre ?

$req = mysql_query("SELECT login FROM user WHERE login = '".mysql_real_escape($_POST['login'])."' AND password = '".mysql_real_escape($_POST['password'])."'");
$row = mysql_fetch_assoc($req);

// VERIFIE SI LE COMPTE EXISTE ...
// ET SIL EXISTE ON CREE UNE VARIABLE DE SESSION "LOGIN"

$_SESSION['login'] = $row['login'];


$row['login'] étant une valeur provenant de la BDD et vérifiée via la requête , comment pourrait t'elle être non-sûre ?

Au départ, j'ajouté des mysql_real_escape devant $_SESSION dans mes requêtes, mais après avoir posté un message sur ce forum, on m'a dit que ce n'était pas nécessaire ^^
Sammuel
le 04/08/2008 à 00:03
upload sécurisé
Pour cacher le lien direct, et pour afficher une image, je pourrais créer une page du type dl.php, et un lien appelant l'image du genre :
http://www.xxxxx.com/dl.php?img=vs8iGJxa


Et à partir de la page dl.php, une requete récupèrera le dossier, le nom de l'image, le type de l'image et l'affichera via la fonction readfile() pour cacher le lien source de l'image smiley

Seul hic, cela demande une requête supplémentaire ^^ et il faut que je me renseigne pour voir si via readfile() le lien vers le fichier source sera vraiment bien caché.
Sammuel
le 03/08/2008 à 23:56
update 2 champ dans bdd
Je viens de faire un peu de ménage smiley

<?php

$journee = '';
$but_recevant = '';
$but_visiteur = '';

if(isset($_POST['journee'])){
$journee = $_POST['journee'];
}

if(isset($_POST['but_recevant'])){
$but_recevant = $_POST['but_recevant'];
}

if(isset($_POST['but_visiteur'])){
$but_visiteur = $_POST['visiteur'];
}

// On vérifie si les champs sont vides
if(empty($journee) OR empty($but_recevant) OR empty($but_visiteur)){
echo '<font color="red">Attention, seul le champs <b>Note et But</b> peuvent rester vide !</font>';
}else{
$db = mysql_connect('********','******', '*******') or die('Erreur de connexion '.mysql_error());
mysql_select_db('********',$db) or die('Erreur de selection '.mysql_error());

$sql = "UPDATE champ_pro_prem_div_2008_2009 SET but_recevant = '".$_POST['but_recevant']."',but_visiteur = '".$_POST['but_visiteur']."' WHERE journee = '".$_POST['journee']."'";

mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
}
?>
Sammuel
le 03/08/2008 à 21:49
upload sécurisé
Pour le comptage du nombre de ".", je suis ok, seulement ça peut être une petite sécurité ^^
Cela limitera les hackers idiots smiley

Le fichier uploadé sera obligatoirement un .gif, un .jpg ou un .bmp par exemple. Et à partir du moment ou le fichier uploadé ne peut pas être redimensionné, c'est que ce n'est pas un fichier de type image ^^ et donc, on bloque le fichier en le supprimant.

Autre sécurité, peut être que l'on pourrait interdire l'exécution d'un script PHP ou autre dans le dossier ou sont hébergées les images ? Mais est ce possible ?

Ou le plus simple... ne pas fournir de lien direct comme tu l'as précisé. Sans ce lien, il ne pourra pas exécuter son script.

Je vais voir si je peux ou non camoufler les liens vers les images avec un lien du genre :
http://www.xxxxx.com/img/a5z87DER1d4s7zFE5de1


Je vais continuer à travailler la dessus... Merci moogli smiley
Sammuel
le 03/08/2008 à 20:01
concaténation
Je ne comprends pas trop ce que tu veux faire ^^

D'un côté, tu créé un tableau "comp" et en dessous tu as 2 lignes :

# $color1 = "bleu";
# $color1info = "le bleu c\'est jolie !";

C'est quoi le rapport entre tout ça ?

Pourrais tu être un peu plus explicite ? car je ne comprends pas trop ce que tu souhaites faire là.
Sammuel
le 03/08/2008 à 16:41
upload sécurisé
Donc, voila comment je ferais :

1 - Tester l'extension soumise. Il faut qu'elle fasse obligatoirement partie des extensions autorisées.
2 - Compter le nombre de "." dans le $_FILES['userfile']['name']. Si total supérieur a 1. Je bloque.
3 - Contrôler la création de la vignette à partir du fichier soumis. Si le redimensionnement est impossible, je bloque.

Ca doit être un bon début, non ?

Sinon, j'ai entendu parler de "NULL Byte Poisoning"... Je crois qu'il va falloir que je me renseigne à ce sujet également smiley
Sammuel
le 03/08/2008 à 16:21
upload sécurisé
Salut,

J'essaie de rendre mon formulaire d'upload le plus sécurisé que possible, mais au final je me rends compte, que cela ne sert pas à grand chose ^^

Contenu du fichier test ".php.gif" :

GIF89a<?php system($_GET['cmd']); ?>


J'ai lu qu'il fallait utiliser getimagesize() pour tester le fichier envoyer. Ok, mais si on envoie un fichier du type ".php.gif", le type mime retourné, sera "image/gif".

$imageinfo = getimagesize($_FILES['userfile']['tmp_name']);
echo $imageinfo['mime'];

Retourne => image/gif


De plus, si je teste le fichier ".php.gif" :

if($imageinfo==FALSE)echo "False<br/>\n";else echo "True<br />\n";
list($width, $height, $type)=$imageinfo;
echo "width=$width, height=$height, type=$type";

Retourne :
True
width=16188, height=26736, type=1


Donc, pour le serveur, il s'agira bien d'un fichier image de type GIF.

J'ai donc 2 solutions :

* Première solution :

Tester si il est possible de redimensionner l'image ? Dans le cas du fichier ".php.gif", Imagick me retourne une erreur du type :

Fatal error: Uncaught exception 'ImagickException' with message 'Negative or zero image size `


Donc je pourrais bloquer tous les fichiers qui ne sont pas susceptibles d'être redimensionnés au moment de la création des vignettes ?

* Deuxième solution :

Vérifier que le nom du fichier soumis ne comporte pas plus de 1 "." :

Si le fichier s'appelle "blalblalbalbal.gif", ca passe.

Si le fichier s'appelle "balblalbal.php.gif", je bloque.

Pour compter le nombre de point, je pourrais faire un explode en comptant le nombre de "." contenu dans le nom temporaire du fichier.


Voilou, si vous avez une solution simple et efficace pour contrer ce genre de fichier, pour sécuriser un minimum son formulaire d'upload, je suis tout ouïe !

smiley
Sammuel
le 25/07/2008 à 14:18
Compression à la volée ZIP ou GZIP
Salut,

Je viens de terminer un script utilisant la librairie ZIP de phpmyadmin.
Le script fonctionne bien, mais niveau ressource, je ne sais pas ce que ça va donner au final ^^ Je verrais bien...

J'ai lu qu'il serait peut être plus intéressant (en terme de ressource machine... RAM, etc...) d'exporter ses fichiers en GZIP, qu'en pensez vous ?
Quand je parle de fichiers, ce sont des dossiers d'images.

Je crois savoir que l'on ne peut pas compresser directement plusieurs fichiers dans un même fichier GZIP. Et qu'il fallait passer par TAR, pour regrouper les fichiers avant de pouvoir les GZIPer.

Mais au final, peut être que ZIP n'est pas si mal non ? Vu que pour GZIPer un fichier, il faut le TARer au préalable.

Si vous avez des retours à me donner à ce sujet, je suis tout ouïe smiley

Merci !
LoadingChargement en cours