script pour include

Statut
N'est pas ouverte pour d'autres réponses.

Calvin80

Respect is key
perso j'utilise un fichier 'securedparams.php'

dans ce fichier je dénfini une fonction GetParam("nom_du_param", "source");
cette fonction checke la configuration du serveur (comme les magic quotes) et fais ttes les modifs necessaire pour renvoyer un paramètre "sécurisé".

et dans mes pages je fais
include_once('./securedparams.php');
$param=GetParam('monParam',$_POST);

comme ça, si y'a un changemet sur la config serveur, le site reste sécurisé...
 

Xou

I ♥ rien
En fait, quand je fais des liens get -> ce sont des pages php tout simplement :)
 

Leaf

pentoboules (h)
Xyo a dit:
En fait, quand je fais des liens get -> ce sont des pages php tout simplement :)
Oui mais bon, tu saiiiiis, tout le monde ne fait pas comme ça hein, d'ailleurs ça me fait trop rire quand je vois un formulaire de contact par ex avec method="GET" :roll:
 

Calvin80

Respect is key
Leaf a dit:
Oui mais bon, tu saiiiiis, tout le monde ne fait pas comme ça hein, d'ailleurs ça me fait trop rire quand je vois un formulaire de contact par ex avec method="GET" :roll:
heu... pkoi ?
 

Leaf

pentoboules (h)
Calvin80 a dit:
heu... pkoi ?
Ben j'sais pas, passer des informations relativement confidentielles dans une url c'est pas très conseillé généralement :)
 

Calvin80

Respect is key
Leaf a dit:
Ben j'sais pas, passer des informations relativement confidentielles dans une url c'est pas très conseillé généralement :)
heu..c'est pas pour t'embeter mais... pourquoi ?
à partir du moment que tu n'es pas en ssl (HTTPS), que ce soit du post ou du get, ça passe en clair sur le reseau.
 

Leaf

pentoboules (h)
Calvin80 a dit:
heu..c'est pas pour t'embeter mais... pourquoi ?
à partir du moment que tu n'es pas en ssl (HTTPS), que ce soit du post ou du get, ça passe en clair sur le reseau.
Ouais mais je sais pas, il me semble que j'avais lu quelque part que passer des données assez "confidentielles" en GET ben caytraymal..

Enfin c'est peut-être moi qui me trompe hein mais je crois avoir lu ça il y a quelques années dans le livre PHP pour les nuls :gne: :gne:
 

Calvin80

Respect is key
Leaf a dit:
Enfin c'est peut-être moi qui me trompe hein mais je crois avoir lu ça il y a quelques années dans le livre PHP pour les nuls :gne: :gne:
lol Oki :p
 
1er
OP
DeScH

DeScH

AstaLaVista
Encore une petite question:


<?php include('config.php');
session_start(); // début de session

if (($_COOKIE['pseudo'] and $_COOKIE['pass'])){
session_register("authentification");
$_SESSION['username'] = $_COOKIE['pseudo'];
$_SESSION['user_password'] = $_COOKIE['pass'];
$user = $_SESSION['username'];
mysql_connect($dbhost, $dbuser, $dbpasswd);
mysql_select_db($dbname, $dbprotect);
$reponse = mysql_query("SELECT * FROM phpbb_users ORDER BY username") or die(mysql_error());
while ($donnees = mysql_fetch_array($reponse))
{
if ($user == $donnees['username'])
$level = $donnees['user_level'];
$_SESSION['user_level'] = $level;
$user_level = $level;
}}
?>

Ceci est-il sécurisé ou pas?
 

Calvin80

Respect is key
Hello

heu... oui mais...certaines choses que je comprends pas..
à quoi sert ton script ? à recupérer le level de l'utilisateur?
pourquoi ne pas aller le chercher en une requete plutot que de parser tous les users?

si tu as 300.000 users et que tu cherchers "zobilamouche", ça risque de prendre du temps.

enfin je dis ça...
 
1er
OP
DeScH

DeScH

AstaLaVista
lorsque les membres se connectent, un cookie est créé avec le pseudo et le pass de l'utilisateur.
si le cookie existe, une session est ouverte et en fonction du level, certaines pages aparaissent ou non.
Si tu as une autre méthode explique moi car c'est la plus simple que j'ai réussi a trouver :)
 

Calvin80

Respect is key
$reponse = mysql_query('SELECT user_level FROM phpbb_users WHERE username="'.$_SESSION['username'].'"') or die(mysql_error());
while ($donnees = mysql_fetch_array($repons e))
{
$level=$donnees['user_level'];
...
}

en ayant verifié la sécurité de $_SESSION['username']

par ailleurs, un truc que je comprends pas...dans ton code tu verifies pas le mot de passe.
Ca veut dire que si je vais mettre le nom d'un admin dans mon cookie, je me retrouve avec son level ??? cooooooooool :p

ps: c'est peut etre des question betes, je connais pas phpbb
 

Xou

I ♥ rien
En fait, je fais touojurs une double requete par rapport au login et mdp

je m'explique

je fais une première requete : select mdp from users where user = "name"
ensuite je compare celle ajouté et si c'est bien le cas -> select * from users where user ="name"

Version simpliste

ça évite les injections sql banales déjà ce genre de choses :)
faut éviter au possible les and lors de connexion critique.
 

Calvin80

Respect is key
Xyo a dit:
ça évite les injections sql banales déjà ce genre de choses :)
faut éviter au possible les and lors de connexion critique.
je comprends tjrs pas... à partir du moment ou tu utilises un variable externe dans ta query( comme "name"), tu risque forcement une injection ! que tu mettes un AND un OR ou ce que tu veux derriere.....
La seule chose que tu evites en faisant ça, c'est que la personne prenne l'identité de qq'un d'autre (car tu verifies les mot de passes en PHP et pas dans ta requete mysql).

Mais une injection mysql, ça peut faire bcp + mal que simplement prendre le userid/user_level d'un autre.
 
1er
OP
DeScH

DeScH

AstaLaVista
Les mots de passes sont cryptés en md5 (le cookie pass l'est aussi), si on veut piquer le compte d'un utlisateur, il faut connaitre son mot de passe en md5. Donc d'après moi c'est sécurisé. Mais ... on ne sait jamais :p
 

Xou

I ♥ rien
Calvin80 a dit:
je comprends tjrs pas... à partir du moment ou tu utilises un variable externe dans ta query( comme "name"), tu risque forcement une injection ! que tu mettes un AND un OR ou ce que tu veux derriere.....
La seule chose que tu evites en faisant ça, c'est que la personne prenne l'identité de qq'un d'autre (car tu verifies les mot de passes en PHP et pas dans ta requete mysql).

Mais une injection mysql, ça peut faire bcp + mal que simplement prendre le userid/user_level d'un autre.
Je parlais des banales, donc que monsieur tout le monde sait faire.

Mais évidement on est jamais à l'abris de tout ;)
 

Calvin80

Respect is key
DeScH a dit:
Les mots de passes sont cryptés en md5 (le cookie pass l'est aussi), si on veut piquer le compte d'un utlisateur, il faut connaitre son mot de passe en md5. Donc d'après moi c'est sécurisé. Mais ... on ne sait jamais :p
ok? mais si le code que tu as mis ai sur une page sans rien d'autre avant, alors on peut piquer le level de qui on veut..

et puis..je comprends tjrs pas pourquoi tu filtre pas ta query sur le username...
y doit y'avoir une raison et j'amerai bien que qq'un me l'explique.
 
1er
OP
DeScH

DeScH

AstaLaVista
Sur chaque page, j'ai fait un include qui pointe sur la page dans laquelle il y a ce code.
Euh nan y'en a pas lol
 

Calvin80

Respect is key
ben que se passe-t-il si je change le username de mon cookie pour mettre le username d'un admin???
 
1er
OP
DeScH

DeScH

AstaLaVista
j'ai testé, t'es plus connecté. Mais c'est vrai que je vais encore mieux protger le truc: vérifier username et pass avant d'enregister la session... on sait jamais.
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut