NickKoole / educom-webshop-database-1697464368

0 stars 0 forks source link

Programeer defensief, ga er niet van uit dat alle productId's in je cart ook in je database staan #21

Open JeroenHeemskerk opened 1 year ago

JeroenHeemskerk commented 1 year ago

De code hieronder gaat er blindelings van uit dat elke product_id in de cart ook in de database staat https://github.com/NickKoole/educom-webshop-database-1697464368/blob/af34c8984c3dc31f106a01f9b9370eb30761220b/products_service.php#L51-L53 Maar dit is niet altijd het geval als een hacker je site heeft bewerkt, je kunt hier toevoegen dat als het id niet in de $products array staat, je de regel kunt overslaan. (of zelfs verwijderen uit de cart)

 $products = getAllProducts(); // getSpecificProducts(array_keys($cart)) 
 foreach ($cart as $product_id => $amount) { 
     if (!array_key_exists($product_id, $products)) {
        continue;
     }
     $product = $products[$product_id]; 
JeroenHeemskerk commented 1 year ago

Let op de meeste variabelen zijn camelCase maar product_id is snake_case