sql >> Database >  >> RDS >> PostgreSQL

Hoe kan ik SQL-injectie voorkomen met een willekeurige JSONB-querystring die wordt geleverd door een externe client?

U kunt de gebruikers toestaan ​​een pad op te geven in het JSON-document en dat pad vervolgens parametriseren binnen een aanroep van een functie zoals json_extract_path_text . Dat wil zeggen, de WHERE-clausule zou er als volgt uitzien:

WHERE json_extract_path_text(data, $1) = $2

Het padargument is slechts een tekenreeks, gemakkelijk te parametriseren, die de sleutels beschrijft om naar de gegeven waarde te gaan, b.v. 'foo.bars[0].name' . De rechterkant van de clausule zou worden geparametriseerd volgens dezelfde regels die u gebruikt voor vaste kolomfiltering.




  1. hoe meerdere arrays in de database in te voegen met behulp van PHP

  2. Een speciaal netwerk configureren voor communicatie met beschikbaarheidsgroepen

  3. Geaggregeerde waarden over een bereik van uren, elk uur

  4. Geneste CAST werkt niet