SQL injections doet ik het goed?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ventilatiesysteem Productontwikkelaar HBO WO Verwa

Samengevat: Zij bieden flexibele ventilatiematerialen, geluidsdempers, rookgasafvoer producten en industrieslangen. Ben jij een technisch productontwikkelaar? Heb jij ervaring met het ontwikkelen van nieuwe producten? Vaste baan: Technisch Productontwikkelaar HBO WO €3.000 - €4.000 Zij bieden een variëteit aan flexibele ventilatiematerialen, geluiddempers, rookgasafvoer producten, industrieslangen en ventilatieslangen voor de scheepsbouw. Met slimme en innovatieve materialen zorgen wij voor een gezonde en frisse leefomgeving. Deze werkgever is een organisatie die volop in ontwikkeling is met hardwerkende collega's. Dit geeft goede ontwikkelingsmogelijkheden. De branche van dit bedrijf is Techniek en Engineering. Functie: Voor de vacature als Technisch Productontwikkelaar Ede Gld HBO WO ga

Bekijk vacature »

Haddi Vries

Haddi Vries

25/04/2014 14:38:01
Quote Anchor link
Hallo,
Ik ben bezig met mijn script te beveiligen voor SQL injections, nu heb ik wat op het internet gelezen maar staan er wat voorbeelden waar ik niet wijzer van word

Ik heb nu een voorbeeld code dat ik gebruik: en ik vraag me af of ik het goed doe
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
if (isset($_GET['id']))
{

        $naamID = $db->real_escape_string(trim($_GET['nameID']));
        $id     = intval($_GET['id']);
        $idnext = $id + 1;
        $goo    = $db->query("SELECT * FROM category INNER JOIN post ON category.name = post.cat WHERE post.cat = '" .$naamID. "' AND post.id = $id") or die($db->error);
}

?>
Gewijzigd op 25/04/2014 14:43:05 door Erik Rijk
 
PHP hulp

PHP hulp

24/04/2024 21:42:28
 
Frank Nietbelangrijk

Frank Nietbelangrijk

25/04/2014 16:55:18
Quote Anchor link
Is naamID een type char of varchar? dan moet je die inderdaad escapen met real_escape_string(). en de $id is nummeriek zo te zien, Je gebruikt hierbij intval() waardoor $id niets anders meer kan zijn dan een geheel getal. En daarmee kunnen hackers geen grappen uithalen met je database.

Je kunt ook een stapje verder gaan door te werken met prepared statements: http://php.net/manual/en/mysqli.prepare.php
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

25/04/2014 19:31:59
Quote Anchor link
Wat heeft een prepared statement voor voordelen ten opzichte van hoe het nu gedaan is?
 
Frank Nietbelangrijk

Frank Nietbelangrijk

25/04/2014 22:00:00
Quote Anchor link
Het voordeel is dat de query parameters gescheiden blijven van de query structuur.

Als je eens googled op 'mysql_real_escape_string versus Prepared Statements' dan leer je dat mysql_real_escape_string niet in alle situaties veilig is en dat je deze ook zou kunnen vergeten als programmer. Prepared statements vergeet je nooit want dan werkt je query simpelweg niet.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

25/04/2014 22:26:40
Quote Anchor link
Het nadeel is dat die parameters aan een prepared statement verbonden zijn.

Vanuit de database gezien bestaan prepared statements NIET VOOR SECURITY, maar gewoon on snel(ler) een aantal dezelfde queries met verschillende parameters achter elkaar uit te kunnen voeren
Gewijzigd op 25/04/2014 22:27:09 door Ger van Steenderen
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.