Voici un petit résumé synthétique d'une étude de Akamai sur la sécurité des applis web et les jeux en ligne (période 2017-2019):
https://www.akamai.com/us/en/multimedia/...y-2019.pdf
Avec une version complètes:
https://www.akamai.com/us/en/multimedia/...t-2019.pdf
Je ne vous en fait donc pas un résumé (je ne l'ai pas encore lu!) mais vous avez là un paramètre important à prendre en compte si vous voulez "devenir pro" en faisant du jeu Facebook/Mobile/apps: les outils d'attaque automatiques sur ces supports existent aussi, et peuvent faire très mal à un petit jeu indé.
Pour rappels *rapides*:
* SQLi => SQL Injection = je concatène des data (entrées utilisateur, contenu d'un fichier, champs de la BDD) avec une query SQL et j'exécute le tout => Résultat, l'utilisateur a la main sur la query SQL et peut exécuter ce qu'il veut sur le serveur SQL
Exemple A NE PAS REPRODUIRE: $mysql->query('SELECT * FROM user WHERE id = ' . $_GET['id'])
* LFI => Local File inclusion = j'inclue (require/include) un fichier du serveur dans ma page web, et l'utilisateur peut influer sur le chemin de ce fichier => Résultat, l'utilisateur peut faire exécuter le code PHP qu'il souhaite (dès l'instant où ce code est présent dans un fichier du serveur, ce qui inclus parfois les avatars...!)
Exemple A NE PAS REPRODUIRE: require_once __DIR__ . '/pages/' . $_GET['page'];
* RFI => Remote file inclusion = idem que LFI, mais l'utilisateur inclue un fichier d'un serveur distant (le sien par exemple, ou un serveur compromis
Exemple A NE PAS REPRODUIRE: require_once $_GET['page'];
* XSS => Cross Site Scripting = le serveur envoie des données dans une page (HTML souvent) sans les avoir correctement échappées => Résultat, l'attaquant a la main sur le navigateur de sa victime par l'intermédiaire du serveur web
Exemple A NE PAS REPRODUIRE: echo '<html><body>' . $dataFromMysql['username'] . '</body></html>';
* PHPi => PHP injection = le serveur exécute dans le code PHP des commandes données par le client => Résultat, l'attaquant peut exécuter le code PHP qu'il souhaite, lui donnant la main sur le serveur
Exemple A NE PAS REPRODUIRE: eval("$resultat = " . $_GET['calculAFaire']);
https://www.akamai.com/us/en/multimedia/...y-2019.pdf
Avec une version complètes:
https://www.akamai.com/us/en/multimedia/...t-2019.pdf
Je ne vous en fait donc pas un résumé (je ne l'ai pas encore lu!) mais vous avez là un paramètre important à prendre en compte si vous voulez "devenir pro" en faisant du jeu Facebook/Mobile/apps: les outils d'attaque automatiques sur ces supports existent aussi, et peuvent faire très mal à un petit jeu indé.
Pour rappels *rapides*:
* SQLi => SQL Injection = je concatène des data (entrées utilisateur, contenu d'un fichier, champs de la BDD) avec une query SQL et j'exécute le tout => Résultat, l'utilisateur a la main sur la query SQL et peut exécuter ce qu'il veut sur le serveur SQL
Exemple A NE PAS REPRODUIRE: $mysql->query('SELECT * FROM user WHERE id = ' . $_GET['id'])
* LFI => Local File inclusion = j'inclue (require/include) un fichier du serveur dans ma page web, et l'utilisateur peut influer sur le chemin de ce fichier => Résultat, l'utilisateur peut faire exécuter le code PHP qu'il souhaite (dès l'instant où ce code est présent dans un fichier du serveur, ce qui inclus parfois les avatars...!)
Exemple A NE PAS REPRODUIRE: require_once __DIR__ . '/pages/' . $_GET['page'];
* RFI => Remote file inclusion = idem que LFI, mais l'utilisateur inclue un fichier d'un serveur distant (le sien par exemple, ou un serveur compromis
Exemple A NE PAS REPRODUIRE: require_once $_GET['page'];
* XSS => Cross Site Scripting = le serveur envoie des données dans une page (HTML souvent) sans les avoir correctement échappées => Résultat, l'attaquant a la main sur le navigateur de sa victime par l'intermédiaire du serveur web
Exemple A NE PAS REPRODUIRE: echo '<html><body>' . $dataFromMysql['username'] . '</body></html>';
* PHPi => PHP injection = le serveur exécute dans le code PHP des commandes données par le client => Résultat, l'attaquant peut exécuter le code PHP qu'il souhaite, lui donnant la main sur le serveur
Exemple A NE PAS REPRODUIRE: eval("$resultat = " . $_GET['calculAFaire']);