Piratage de Pajemploi (Urssaf)

WRInaute occasionnel
Un piratage massif de plus.

Les données à caractère personnel potentiellement extraites comprennent les nom, prénom, date et lieu de naissance, adresse postale, numéro de Sécurité sociale, nom de l’établissement bancaire, numéro Pajemploi et numéro d’agrément.

Et dire que moi, qui ne stocke même pas les adresses IP, mais seulement les pseudos (cryptés) des utilisateurs enregistrés de mon site, je me rends malade de peur d'être piraté un jour...

https://www.lefigaro.fr/secteur/hig...-a-1-2-million-de-personnes-touchees-20251117
 
WRInaute occasionnel
@kartyr ça va vite pour se faire pirater un site. J'ai remarqué qu'il y a pas mal de gens physiques et de bots qui tentaient de bricoler avec les paramètres des URLS (/?truc=valeur) en tentant de pirater les $_GET['truc'] de php mal sécurisé, et il y en a qui y arrivent. Il faut bien protéger les paramètres dans les URLS, surtout en rapport avec les bases de données. Je lutte contre ça, depuis que j'en ai été victime il y a environ 10 ans, j'ai compris leur truc. En même temps il y a 10 ans j'étais débutant, tout comme je le suis aujourd'hui encore mais moins

Par exemple, en mariadb/php, il ne faut surtout pas faire ceci :
PHP:
mysqli_query($db, "SELECT * FROM test WHERE user='".$_GET['test']."' LIMIT 1"); // le piège à la con qui m'a touché il y a plus de 10 ans. Le LIMIT 1, il est possible qu'il pénalise les pirateurs.

Il faut aussi éviter de faire ceci (même avec une class):
PHP:
mysqli_query($db, "SELECT * FROM test WHERE user='".mysqli_real_escape_string($db, $_GET['test'])."' LIMIT 1"); // c'est sécurisé. Les pirateurs sont aussi embêtés par le "limit 1".

Maintenant, j'utilise ceci depuis 3 ans environ, les requêtes préparées :
PHP:
$stmt = $bd->prepare("SELECT id, user, ... FROM test WHERE user = ? LIMIT 1");
$stmt->bind_param("s", $_GET['test']);

Ensuite, si je vois un code comme dans le "1", qui ne possède pas de "$_GET/$_POST" et bien j'y touche pas. C'est pas urgent de mettre à jour.Il faut vraiment que ce soit une variable en dure, comme test="1".

Il faut bien sécuriser les $_GET et $_POST ou des trucs qui peuvent être personnalisés par l'utilisateur

Résumé rapide des 3 types de mysqli :

share_13e7270af5f38b16.png

le N°1: Noob
le N°2 : Ancien pro
le N°3 : Pro
 
Dernière édition:

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut