Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Ujawnianie nazwy tabeli i nazw pól w adresie URL żądania

Nie mam problemu z używaniem tych samych (lub bardzo podobnych) nazw w adresie URL i bazie danych — z pewnością możesz „ujawniać” szczegóły implementacji, ale jeśli wybierasz radykalnie różne nazwy w adresie URL i w bazie danych, prawdopodobnie wybierasz złe nazwiska. Jestem też fanem spójnego nazewnictwa — komunikacja z programistami/testerami/klientami staje się znacznie trudniejsza, jeśli wszyscy nazywają wszystko nieco inaczej.

Co mnie wkurza, to to, że pozwalasz użytkownikowi uruchamiać dowolne zapytania w Twojej bazie danych. http://.../index.php?table=users&user_id=1 , mówić? Lub http://.../index.php?table=users&password=password (nie, że powinieneś przechowywać hasła w postaci zwykłego tekstu)? Lub http://.../index.php?table=users&age=11 ?

Jeśli użytkownik podłączony do bazy danych ma takie same uprawnienia jak użytkownik siedzący przed przeglądarką internetową, może to mieć sens. Ogólnie rzecz biorąc, tak nie jest, więc będziesz potrzebować warstwy, która wie, kim jest użytkownik, a czego nie może zobaczyć, a ta warstwa jest o wiele łatwiejsza do prawidłowego napisania dzięki dodaniu do białej listy.

(Jeśli umieściłeś wystarczająco dużo logiki w procedurach składowanych, może to zadziałać, ale wtedy Twoje procedury składowane będą na stałe kodować nazwy kolumn...)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zakres limitu MySQL

  2. Optymalne ustawienia MySQL dla zapytań dostarczających duże ilości danych?

  3. Jak wstawić DECIMAL do bazy danych MySQL

  4. Jak skonfigurować i zalogować się jako użytkownik root w MySQL?

  5. Python - mysqlDB, wynik sqlite jako słownik