Avatar billede briankl Nybegynder
14. november 2000 - 13:29 Der 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.

Ideer modtages! :)

Venligst
Brian Klausen
Avatar billede tdaugaard Nybegynder
14. november 2000 - 14:12 #1
Du kan ikke andet end gemme den i ren tekst .. desværre :(
Avatar billede etlekana Nybegynder
14. november 2000 - 14:43 #2
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)

hvad er det der skal beskyttes så godt?
Avatar billede etlekana Nybegynder
14. november 2000 - 14:44 #3
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)

Ellers må du have fat i der kan kode det :O)

Avatar billede briankl Nybegynder
14. november 2000 - 15:10 #4
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.
Avatar billede frank_jensen Nybegynder
15. november 2000 - 12:34 #5
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...
Avatar billede briankl Nybegynder
15. november 2000 - 13:04 #6
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.

Tak for ideerne...
Avatar billede frank_jensen Nybegynder
15. november 2000 - 13:09 #7
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...
Avatar billede briankl Nybegynder
15. november 2000 - 13:12 #8
Hej Frank:

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.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester