AIDEZ-MOI S'IL VOUS PLAÎT ! Comment corriger les failles SQL et XSS dans mon cas ?

Eléphant du PHP | 137 Messages

24 janv. 2021, 21:49

BONJOUR.

I - Je travaille sur la refonte d'un site fait en mySQLi et j'ai d'abord, décidé de tester les failles de sécurité en injectant du javaScript <script>alert("Test XSS")</script. comme ceci:

Code : Tout sélectionner

http://localhost/app/index.php?page=home<script>alert("Test XSS")</script>
Ça me retourne VRAIMENT un alert avec un Test XSS et un bouton Ok sur mon Navigateur Web Chrome. Ce qui prouve qu'elle est bel et bien vulnérable au XSS.

Alors que mon Fichier index.php contient le bout de Code qui appelle en get le Paramètre page:

Code : Tout sélectionner

<?php $page = isset($_GET['page']) ? $_GET['page'] : 'home'; if(!file_exists($page.".php")){ include '404.html'; }else{ include $page.'.php'; } ?>
COMMENT DONC CORRIGER LA FAILLE DE SECURITE XSS DANS MON CODE PHP DE SORTE A CORRIGER CETTE FAILLE ???


II- TOUJOURS EN PHASE DE TEST DE LA MÊME APPLICATION PHP, j'ai injecté un apostrophe (') à la fin du lien http://localhost/stamp/index.php?page=edit_staff&id=2' c'est à dire juste après le id=2, j'ai ajouté un petit signe ' histoire de voire si ça pourrait me retourné une erreur SQL:

ET VOICI L'ERREUR QUE ÇA ME RETOURNE:

Code : Tout sélectionner

Fatal error: Uncaught Error: Call to a member function fetch_array() on boolean in C:\laragon\www\stamp\edit_staff.php:3 Stack trace: #0 C:\laragon\www\stamp\index.php(54): include() #1 {main} thrown in C:\laragon\www\stamp\edit_staff.php on line 3
ALORS QUE TOUTE LA REQUÊTE MySQLi qui traite le lien est le suivant:

Code : Tout sélectionner

<?php include 'db_connect.php'; $qry = $conn->query("SELECT * FROM users where id = ".$_GET['id'])->fetch_array(); foreach($qry as $k => $v){ $$k = $v; } include 'new_user.php'; ?>
COMMENT CORRIGER EGALEMENT CETTE FAILLE SQL DE SORTE A CE QU'ELLE N'APPARAISSENT PLUS ???


AIDEZ-MOI S'IL VOUS PLAÎT.

Avatar du membre
Mammouth du PHP | 1564 Messages

25 janv. 2021, 02:16

C'est pas pour dire mais ça grouille de tuto sur le web...
par exemple: https://duckduckgo.com/?q=tuto+corriger ... fab&ia=web