sql >> Databáze >  >> RDS >> Mysql

Odhalení názvu tabulky a názvů polí v adrese URL požadavku

Nemám problém s používáním stejných (nebo velmi podobných) názvů v URL a databázi – jistě, můžete „odhalit“ detaily implementace, ale pokud vybíráte radikálně odlišné názvy v URL a DB, pravděpodobně vybíráš špatná jména. Jsem také příznivcem konzistentního pojmenování — komunikace s kodéry/testery/zákazníky se stává mnohem obtížnější, pokud každý vše nazývá trochu jinak.

Vadí mi, že necháváte uživatele spouštět libovolné dotazy na vaši databázi. http://.../index.php?table=users&user_id=1 řekni? Nebo http://.../index.php?table=users&password=password (ne že byste měli ukládat hesla v prostém textu)? Nebo http://.../index.php?table=users&age=11 ?

Pokud má uživatel připojený k DB stejná oprávnění jako uživatel sedící před webovým prohlížečem, mohlo by to dávat smysl. Obecně to tak nebude, takže budete potřebovat nějakou vrstvu, která ví, co uživatel je a co nesmí vidět, a tato vrstva se dá mnohem snadněji správně zapsat pomocí bílé listiny.

(Pokud jste do uložených procedur vložili dostatek logiky, mohlo by to fungovat, ale vaše uložené procedury pak pevně zakódují názvy sloupců...)



  1. Vybudujte informační systém s PHP a MySQL

  2. PostgreSQL a datové typy C#

  3. SqlServer:Přihlášení uživatele se nezdařilo

  4. podmíněné spojení mysql závisí na sloupci