Basis van informatiebeveiliging

Waarom worden prepared statements met placeholders (geparametriseerde query's) als tegenmaatregel tegen SQL-injectie als fundamenteler beschouwd dan het verwijderen van gevaarlijke tekens uit de invoer?

  1. AOmdat de invoer wordt versleuteld voordat hij aan de database wordt doorgegeven, zodat aanvallers hem niet kunnen lezen
  2. BOmdat de browser controleert welke soorten tekens worden ingevoerd, zodat kwaadaardige tekenreeksen de server nooit bereiken
  3. COmdat eerst de structuur van het SQL-statement wordt vastgelegd en de invoer daarna alleen als waarden wordt doorgegeven, zodat de invoer, welke tekens hij ook bevat, nooit als deel van de opdracht wordt geïnterpreteerd
Antwoord en toelichting tonen

Antwoord: C. Omdat eerst de structuur van het SQL-statement wordt vastgelegd en de invoer daarna alleen als waarden wordt doorgegeven, zodat de invoer, welke tekens hij ook bevat, nooit als deel van de opdracht wordt geïnterpreteerd

Bij een prepared statement wordt eerst een SQL-statement waarin de waarden door symbolen (placeholders) zijn vervangen, zoals „SELECT … WHERE id = ? AND password = ?”, aan de database doorgegeven om de structuur vast te leggen, en daarna wordt de invoer alleen als waarden gekoppeld (binding). De invoer wordt van begin tot eind als gegevens behandeld, dus zelfs als hij aanhalingstekens bevat, wordt hij nooit deel van een opdracht, zoals een opdracht die een voorwaarde toevoegt. Gevaarlijke tekens verwijderen of escapen vereist dat elke gedetailleerde regel voor elk type database en elke tekencodering zonder uitzondering wordt afgehandeld, en één enkele leemte laat de aanval slagen. Controles van de invoer in de browser kunnen worden omzeild als de aanvaller verzoeken rechtstreeks verstuurt zonder een browser te gebruiken; ze dienen het gebruiksgemak en zijn geen beveiligingsmaatregel. Daarnaast blijft de schade klein als het account waarmee met de database wordt verbonden de minimale rechten krijgt.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Basis van informatiebeveiliging

  1. Een webapplicatie voor een prikbord had een kwetsbaarheid waarbij scripts in teksten die gebruikers plaatsten, werden uitgevoerd in de browsers van andere bezoekers. Welke combinatie geeft de naam van deze kwetsbaarheid en de fundamentele tegenmaatregel juist weer?
  2. Een webapplicatie heeft een kwetsbaarheid waarbij, als een ingelogde gebruiker een door een aanvaller klaargezette valpagina opent, de browser van de gebruiker verzoeken naar de legitieme site stuurt die de gebruiker niet bedoelde, zoals geld overmaken of instellingen wijzigen. Welke tegenmaatregel is geschikt?
  3. Een webapplicatie leest en toont een bestand door een bestandsnaam uit een URL-parameter aan de naam van haar openbare map te koppelen. Als een waarde met ../ als bestandsnaam wordt opgegeven, kunnen configuratiebestanden en andere bestanden buiten de openbare map worden gelezen. Welke combinatie geeft de naam van deze aanval en een tegenmaatregel juist weer?
  4. Als een webapplicatie vóór en na het inloggen dezelfde sessie-ID blijft gebruiken, kan een aanvaller de gebruiker een vooraf door de aanvaller klaargemaakte sessie-ID laten gebruiken en zich na het inloggen van de gebruiker met die ID als de gebruiker voordoen. Wat is de meest geschikte tegenmaatregel tegen deze aanval?
  5. Welke uitspraak over een DDoS-aanval is juist?