25. august 2008 - 12:07Der er
5 kommentarer og 1 løsning
Sikkerhed: stored procedure vs. select
Dette er et mere overordnet spørgsmål. Hvis man har en server side som er skrevet i f.eks. C#, jsp eller lignende... Hvad er mest sikkert? Er det at lave en stored procedure i mysql (hvor man f.eks. laver en select sætning) og så kalde den fra server siden, eller er det at lave select sætningen på serversiden som så gør det samme?
Stored procedure kan have en fordel, hvis de koerer med privs som ejeren af SP og ikke med priv af kalder, fordi saa kan man via en SP selecte data som man ikke har adgang til med en SELECT.
(og saa er der faerre som bruger dynamisk SQL med SP, men jeg antager at du bruger parameters/prepared statement)
Naar en SP koeres saa kan der checkes to former for privs: priv for den der staa som ejer af SP'en priv for den som koerer SP'en
I MySQL kan du vaelge mellem dem.
Det er den foerste mulighed som er interessant i denne sammenhaeng.
Fordi saa kan du lave alle database operationer som SP'er ejet af et brugernavn som har lov til at tilgaa tabellerne. Saa lade du applikationen logge ind med et brugernavn som har adgang til at execute SP'erne men har ingen som helst adgang til tabellerne. Dermed sikrer du dig at applikationen kun kan udfoere de definerede SP'ere og ikke lidt hjemmestrikket SQL.
Okay, jeg tænkte nok at det var noget med privileges, men var ikke lige helt sikker hvilken en som jeg skulle bruge... Men det vil altså sige at den bruger som skal have love til kun at execute SP'erne skal have privilegiet EXECUTE i MySQL...Mange tak for hjælp og for at gøre det mere klart. Lig et svar og du får points..
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.