eric29950
Messages postés1Date d'inscriptionjeudi 19 décembre 2019StatutMembreDernière intervention19 décembre 2019
-
Modifié le 19 déc. 2019 à 09:39
Eric29950 -
6 févr. 2020 à 08:22
Bonjour à tous,
Je ne suis pas un spécialiste de php mais je reprends un script d’authentification troué pour accéder à une page personnalisée !
Le probleme: Quand un utilisateur accède, après avoir saisi le coupe identifiant/password, à sa page
/usr/local/nginx/html/username_exemple, il peut sans saisir de nouvel identifiant accéder directement à la page d'un autre utilisateur /usr/local/nginx/html/autre_username_exemple !
C'est génant .... et n'ayant pas d'expérience en sécurité php je coince .... pourtant, session_start(); est bien dans le premier script .... Auriez vous des suggestions ? D'avance merci !
(ps: désolé pour les ^M dans le les scripts, un dos2unix passera par la prochainement.)
Je décris:
Fichier index.php qui affiche la page d'authentification.
Le fichier main.php appelé par le script précédent index.php (require_once 'main.php';)
<?php
require_once dirname(__FILE__).'/config.php';
// Connect to db
$conn = ($GLOBALS["___mysqli_ston"] = mysqli_connect($app['db']['host'], $app['db']['username'], $app['db']['password'])) or die("mysql Error: ".mysqli_error($GLOBALS["___mysqli_ston"]));
$db = mysqli_select_db( $conn, $app['db']['database']) or die("mysql Error: ".mysqli_error($GLOBALS["___mysqli_ston"]));
// Common classes
require_once dirname(__FILE__).'/controllers/MatchManager.php';
function getViewable($file, $vars=array())
{
// Make sure view file exists
if(!file_exists($file))
{
die("View file not found: ".$file);
return false;
}
extract($vars);
// Get buffer Buffer
ob_start();
include($file);
$buffer = ob_get_contents();
@ob_end_clean();
return $buffer;
}
// Get key/value array from a jquery serializeArray() result
function getKVarray($jqArray)
{
//$vars = array();
foreach($jqArray as $pair)
{
$t = "\$".$pair['name']." = '".addSlashes($pair['value'])."';\n";
eval($t);
//$vars[$pair['name']] = $pair['value'];
}
//extract($vars);
unset($jqArray, $pair, $t, $vars);
return get_defined_vars();
Et enfin le fichier config.php dans lequel se trouvent les identifiants, mots de passe et les infos de connexion à une base de données Mysql/MariaDB (pour l'appli pas pour l'authentification).
cs_PaTaTe
Messages postés2107Date d'inscriptionmercredi 21 août 2002StatutContributeurDernière intervention19 février 20212 6 févr. 2020 à 01:49
Bonjour,
Ce qui me gêne le plus dans ce code, ce n'est même pas ton soucis qu'une personne puisse voir la page ne lui étant pas autorisé, c'est plutôt que tu stocke les identifiants en clair, bonjour la sécurité.
On stocke ce genre d'information en BDD et on crypte le mot de passe.
J'espère que tu es débutant car sinon c'est assez grave et j'espère ne jamais tomber sur l'un de tes sites :/
Reprends tout de zéro, y a pas grand chose de bon là dedans
Bonjour et merci pour ta réponse. J'ai repris un autre code très récent avec stockage des id/pw dans mysql mais le pb persiste. Du coup j'utilise la méthode radicale htpasswd même si mon serveur tourne avec nginx.
6 févr. 2020 à 08:22