14. november 2000 - 13:29Der er
6 kommentarer og 2 løsninger
Beskyttelse af database, samt username/password til samme
Hejsa folkens,
Jeg har gjort mig en del tanker omkring noget beskyttelse af password til database adgang.
Jeg har altid gjort følgende (primært af hensyn til vedligeholdelse):
Jeg har en include file der opretter et Connection object, samt åbner det, med en ConnectString som også er defineret i samme include file.
Der er ikke ret mange sikkerheds foranstaltninger på udover følgende:
1. Include filen hedder .asp tilsidst, i stedet for .inc. På den måde kan man ikke læse koden hvis man gætter URL\'en, da serveren istedet parser koden.
2. Der er hverken read adgang i almindelighed på det separate bibliotek hvor include filen ligger, ej heller er der anonym adgang (skulle gøre at selv om man fik hittet brugernavn/password får man ikke lov til at læse filen).
Jeg er klar over at folk der får tilranet sig FTP adgang kan komme ind og læse i filen, men er der andre ting jeg kan gøre for at sikre mig i hvert fald på HTTP niveau (eller hvad vi skal kalde det)?
Jeg er nemlig notorisk utryg ved at have password/userid til databasen stående i en fil i klar tekst (om end man skal have direkte fat i filen med f.eks. FTP for at læse det). Men et eller andet sted skal det vel stå.
Er det evt. bedre at lagre brugernavn/password i f.eks. en applikation variabel? Så skal det vel stå i global.asa tilgengæld, og så er det igen i klar tekst, bare i en anden fil.
Du kan gøre det at du password beskytter din database, sådan at hvis folk henter den så kan de ikke åbne den uden at kunne den kode. Det er da et sikkerheds ting mere :o)
Der var også den mulighed hvis du er hardcore VB programmør, så kan du kode dig en dll fil der encrypter dine brugernavn og adgangs koder inden den gemmer dem i databasen :o)
etlekana: Nu er det faktisk ikke en Access database, men en SQL Server database, så de kan ikke ligefrem sådan hente den.
Men jeg tror du har misforstået mit spørgsmål. Jeg har nemlig ingen (pt. i hvert fald), access informationer i selve databasen. Men i og med det er en SQL Server jeg forbinder til, er der brugernavn/password der skal gives i ConnectString.
Hvis du gemmer data i din session eller application variabler, kan andre brugere ikke få fat i den, andet end hvis der er fejl på dine asp-sider, og ASP udskriver en fejl indeholdende connection stringen... Eller hvad med at gemme uid og pw i din ODBC adgang ? Ellers er der den ultimative metode, du opretter en connectionstring indeholdende uid og pw i registreringsdatabasen, og når du skal bruge det, læser du fra registreringsdatabasen. Så skal man sidde på serveren, for at kunne få fat i registreringsdatabasen... Men det kræver, at du har rimeligt med rettigheder på web-serveren...
til Frank: Det var et par seriøse bud. Jeg er med på at brugere ikke ser info af application variable, med mindre jeg er et fjols.
Hvad angår din ide reg. db., så er den egentlig grundlæggende god nok, men en person med FTP adgang, vil nemt kunne modificere scriptet til at udlæse oplysningerne til browseren.
Nu spurgte jeg selvfølgeligt primært til at sikre sig på HTTP niveau, så det skal ikke lægges dig til last.
Jeg har dog ikke mulighed for det på det projekt jeg sidder på pt., men normalt har jeg faktisk den mulighed.
Men er det nok at gemme UID og PW i DSN\'en? Skal de ikke stadigvæk angives i Connectionstring? Eller er det kun hvis man laver DSN-less forbindelse at det er nødvendigt?
Anyways, du får næsten alle pointene, da du kom med at par gode bud, og iøvrigt fik mine øjne op for et par ting.
etlekana får de resterende point, da han/hun, formentlig ubevidst, gav mig en god ide.
Jeg mener, at det er nok at angive det i ODBC adgangen, men jeg er ikke sikker... Og ang. FTP, har du store problemmer, hvis du giver andre skriverettigheder på serveren... For så kan de hente ALT på serveren, inkl. reg.db... Så overvej nøje, hvilke rettigheder du tildeler dels http-klienter, men også FTP klienter...
Jeg havde sådan set ikke tænkt mig at skulle rende og uddele FTP adgang på må og få, og til store områder af serveren (i nuværende projekt er det ydermere begrænset hvor meget magt jeg har over FTP opsætningen), men jeg tænkte simpelthen på en der får hacket FTP kontoen på serveren, og kan få gulerødderne i filer med den slags information.
Synes godt om
Ny brugerNybegynder
Din løsning...
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.