Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Zapobieganie wstrzykiwaniu SQL za pomocą dynamicznego zapytania SQL ALTER USER

Nie powinieneś próbować zapobiegać wstrzykiwaniu SQL tylko na poziomie bazy danych. Kiedy już tam dotarli, w większości już cię dopadli. Powinieneś użyć parametrów, zamaskować dane wejściowe i usunąć złe znaki już w warstwie powyżej. Narzędzia (Frameworks?), takie jak Entity Framework, automatycznie usuwają niebezpieczne znaki.

Korzystanie z DBMS_ASSERT.ENQUOTE_NAME radzi sobie bardzo dobrze tutaj, ale polecam zrobić to również w warstwach powyżej.

Ogólna zasada (której przestrzegasz tutaj):Używaj sprawdzonych i sprawdzonych mechanizmów bezpieczeństwa, nie wymyślaj ich na nowo!

Co więcej, stwierdzenie takie jak

select * from users where username = 'IAm"WayUp';

jest całkowicie legalne i nie jest niebezpieczne.

A jak nazywasz funkcję/procedurę w DB? Tam też jesteś bezbronny, prawda?




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wyświetlić komentarze kolumny z operacją desc

  2. Jak mogę wybrać rekordy TYLKO z wczoraj?

  3. zbieraj informacje dba_users w bazie danych Oracle po połączeniu jako użytkownik

  4. aktualizacja x set y =null zajmuje dużo czasu

  5. Utwórz tabelę zagnieżdżoną i wstawiaj dane tylko do tabeli wewnętrznej