sql >> Database teknologi >  >> RDS >> Mysql

Eksponering af tabelnavn og feltnavne i anmodnings-URL

Jeg har ikke noget problem med at bruge de samme (eller meget lignende) navne i URL'en og databasen - sikkert, du kan "udsætte" implementeringsdetaljer, men hvis du vælger radikalt forskellige navne i URL'en og DB'en, du vælger sandsynligvis dårlige navne. Jeg er også fan af konsekvent navngivning — kommunikation med kodere/testere/kunder bliver meget vanskeligere, hvis alle kalder alting noget lidt anderledes.

Det der plager mig er, at du lader brugeren køre vilkårlige forespørgsler på din database. http://.../index.php?table=users&user_id=1 , sige? Eller http://.../index.php?table=users&password=password (ikke at du skal gemme adgangskoder i klartekst)? Eller http://.../index.php?table=users&age=11 ?

Hvis brugeren, der er forbundet til DB'en, har de samme tilladelser som brugeren, der sidder foran webbrowseren, kan det give mening. Generelt vil det ikke være tilfældet, så du skal bruge et lag, der ved, hvad brugeren er og ikke må se, og det lag er meget nemmere at skrive korrekt ved at hvidliste.

(Hvis du har stukket nok logik ind i lagrede procedurer, så virker det måske, men så vil dine lagrede procedurer hårdkode kolonnenavne...)



  1. Konverter 'datetime offset' til 'date' i SQL Server (T-SQL-eksempler)

  2. sæt session i et SQLAlchemy-sessionsobjekt

  3. Sådan erstattes NULL med en anden værdi i SQL Server – ISNULL()

  4. Sådan indstilles miljøvariabel Path ved hjælp af C#