PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak mogę zapobiec wstrzyknięciu SQL za pomocą dowolnego ciągu zapytania JSONB dostarczonego przez klienta zewnętrznego?

Możesz zezwolić użytkownikom na określenie ścieżki w dokumencie JSON, a następnie sparametryzować tę ścieżkę w wywołaniu funkcji, takiej jak json_extract_path_text . Oznacza to, że klauzula WHERE wyglądałaby tak:

WHERE json_extract_path_text(data, $1) = $2

Argument ścieżki to po prostu łatwo sparametryzowany ciąg, który opisuje klucze do przejścia do podanej wartości, np. 'foo.bars[0].name' . Prawa strona klauzuli byłaby sparametryzowana według tych samych reguł, których używasz do filtrowania kolumn stałych.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wstępna konfiguracja Postgresql:Jak uzyskać dostęp jako użytkownik postgres?

  2. Robienie GDZIE W na wielu kolumnach w Postgresql

  3. uruchamianie postgresql i pgadmin w systemie Windows bez instalacji

  4. Prawidłowe mapowanie między Java LocalDateTime i db

  5. Dlaczego działa inaczej z ~~ any()?