Je vais parler des remarques sur le site car sur le code tant qu'il est comme ça j'aurai du mal à trouver comment faire.
OlivierOxii a écrit:
j'ai remarqué que beaucoup de reproches sur ce site.
Je vais pas parler au nom de tous le monde, mais si le code fourni est de la même qualité que celui que tu as fourni, je comprends pourquoi il y a des reproches.
Si je reprends ton code et que je l'analyse plus en détails :
Juste dans ces 4 lignes, on peut voir que tu n'as pas de vérification sur les données que tu récupères. Tu fais confiance à l'utilisateur, ce qui est une très mauvaise idée. En plus le nom des paramètres et des variables ne sont pas explicites.
Voici à minimas ce que tu devrais faire pour améliorer ton code :
$id = (int) ($_GET['id'] ?? 0);
$vin = $_GET['vin'] ?? ''; // Ne connsaissant pas son utilité, je ne peux pas te dire si c'est bon ou pas
$tableName = $_GET['table'] ?? '';
$battery = $_GET['battery'] ?? ''; // ça implique un changement dans le HTML
Ensuite on a :
if ($choix == '1') {$sr = 'Good';}
if ($choix == '2') {$sr = 'Bad battery';}
if ($choix == '3') {$sr = 'Need to be recharged';}
Déjà pour être sur du type j'aurais mis un `===` et non un `==`. Mais on peut faire encore mieux en utilisant, soit un match (PHP 8), soit un tableau associatif.
$batteryStatus = [
'1' => 'Good',
'2' => 'Bad battery',
'3' => 'Need to be recharged',
];
// Que veut dire "sr" ?
$sr = $batteryStatus[$battery] ?? 'Unknown'; // Gérer le cas où le choix n'est pas dans le tableau
Ou bien version match
$sr = match ($battery) {
'1' => 'Good',
'2' => 'Bad battery',
'3' => 'Need to be recharged',
default => 'Unknown', // Gérer le cas où le choix n'est pas dans le tableau
};
Ensuite on a :
$sql = "UPDATE ".$csv." SET (`COL 24`) = ".$sr." WHERE (`COL 14`) = ".$vin."";
Il y a plusieurs problèmes dans cette requête. Le premier est que tu utilises des variables directement dans la requête. C'est une très mauvaise idée. Il faut utiliser des requêtes préparées. Ensuite, tu utilises des parenthèses pour les noms de colonnes. Il faut utiliser des guillemets simples.
Avec le fait que tu laisse l'utilisateur entrer des données directement dans la requête via $_GET, tu es vulnérable aux injections SQL. C'est une des pires failles de sécurité que tu peux avoir.
Après on passe à ce qui me fait perdre de l'espérence de vie :
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
La fonction `mysql_query` est obsolète depuis PHP 5.5.0 et a été supprimée depuis PHP 7.0.0. Il faut utiliser `mysqli` ou `PDO`. Ensuite, tu utilises `or die`. C'est une très mauvaise pratique. Il faut gérer les erreurs de manière plus propre. Sache que php 7 existe depuis 2015 et que donc tu as 8, 9 ans de retard sur ça.
Et la faut pas me sortir une excuse de type : "oui mais moi je ne veux pas être pro ou c'est juste un truc vite fait". La sécurité n'est pas un truc vite fait et ce tenir à jour dans les technologies utilises fait aussi parti du taff.
OlivierOxii a écrit:
je l'ai connu c'étais le site du zero il y a longtemps...
Et ça se voit avec le code présenté, mais le monde évolue (en bien ou en mal ça c'est un autre débat). En tout cas par contre suivre l'évolution des technologies utilisé n'est pas une option. Sache d'ailleurs que tu risque gros, si quelqu'un découvre que tu n'es pas à jours d'après la CNIL. Il en va aussi donc de ta responsabilité.
OlivierOxii a écrit:
la mentalité a bien changé.
Personnellement je suis devenu plus calme qu'avant. Plus jeune sur le SdZ je t'aurai dis la même chose d'une autre manière. Le truc c'est que par contre, un code qui date du SdZ, ce n'est pas quelque chose de positif. C'est comme si tu demandais à un médecin de te soigner avec des méthodes de 1900. J'espère que tu tiens à ta vie xD.
OlivierOxii a écrit:
je ne vais plus faire de demandes.
Je dirais même et se sera la chose la plus dur que je vais te dire, mais tu devrais arrêter de coder si tu ne veux pas suivre l'évolution des technologies.
Sur ces mots et si jamais tu penses que m'a mentalité n'est pas bonne, je reste ouvert à tes propositions qui me permettrais de m'améliorer.
My website : Mon serveur discord, Se demerder tout seul, Faille XSS et SQL
My website : Mon serveur discord, Se demerder tout seul, Faille XSS et SQL