SQL I C# - er det sikkert?

Tags:    c#

<< < 12 > >>
Hey,

jeg vil gerne lave et program i C#, der har forbindelse til en mssql database, der har info om de forskellige brugere.

På hvilken måde bør dette gøres - ADO?
Og er det overhovedet sikkert? - Det kan vel decompiles meget nemt :/



Jeg plejer at kalde stored procedures. Det er mere sikkert.



Så der kan man ikke få fat i username / pass og host til sql? :)



Hej Daniel,

Hvis du overvejer at udgive et program til offentligheden, som har kontakt til din egen MSSQL database, så er det bestemt ikke sikkert, nej. Det er nemt at finde strings (og dermed connection strings) i en EXE fil, ligegyldigt om det er .NET eller noget helt andet i øvrigt.

Stored procedures er kun mere sikre end almindelige SQL queries hvis der ikke bruges parametre til sidstnævnte, og de gør i øvrigt ingen forskel hvis din problemstilling er som ovenstående :)

Mvh.

Kasper (TSW)



Hey,

jeg vil gerne lave et program i C#, der har forbindelse til en mssql database, der har info om de forskellige brugere.

På hvilken måde bør dette gøres - ADO?
Og er det overhovedet sikkert? - Det kan vel decompiles meget nemt :/


Det er ligeså sikkert i C# som det er i andre sprog (som Kasper siger)

Men hvad med at du opvejer fordele mod ulemper?

Der er mange der bruger det, så noget må det jo kunne :-). Du kunne måske starte med at lade være med at gemme følsomme oplysninger som password i databasen



Hej Brian,

Hvis jeg ikke skal gemme brugernes login data i min database, hvor i alverden skal jeg så gøre af det? o.O :)



Hej Brian,

Hvis jeg ikke skal gemme brugernes login data i min database, hvor i alverden skal jeg så gøre af det? o.O :)


Jeg siger ikke du ikke skal gemme deres data, men du skal ikke gemme følsomme data som passwords. Det bør man aldrig gøre.



Hej Brian,

Hvis jeg ikke skal gemme brugernes login data i min database, hvor i alverden skal jeg så gøre af det? o.O :)


Jeg siger ikke du ikke skal gemme deres data, men du skal ikke gemme følsomme data som passwords. Det bør man aldrig gøre.


Det er vel lidt svært at logge ind, hvis man ikke har brugerens password. Det skal bare ikke ligge i klar tekst i databasen.



Hej Brian,

Hvis jeg ikke skal gemme brugernes login data i min database, hvor i alverden skal jeg så gøre af det? o.O :)


Jeg siger ikke du ikke skal gemme deres data, men du skal ikke gemme følsomme data som passwords. Det bør man aldrig gøre.


Du skal ikke have passwordet du skal lave en sikker hash på passworded (fx. sha algoritmen) når det bliver oprettet. Denne sikre hash gemmer du så i din database. En sikker hash kan ikke bruges til at genskabe det oprindelige password med. Når så brugeren logger ind, kører du din hash-metode på det indtastede password og ser om det er magen til den hash du har gemt i databasen. HVis det er tilfældet er der indtastet det samme password som da brugeren blev oprettet.

Det betyder at du aldrig gemmer passworded, men laver en kode for det som du så sammenligner med når der logges ind.



Brug webservices eller noget, ik direkte adgang til DB.



Website eller desktopapplikation?

Som et website kan du bare gå amok med databaseforbindelse og SQL - der er ingen mulighed for at læse din sourcekode og sniffe dit password, når det eneste brugeren nogensinde får er en flad HTML-side.

Hvis det er en desktopapplikation er det absolut selvmord at forbinde til en SQL-server uden et webservice-abstraktionslag som sikkerhed. Kig eventuelt på Microsoft's Azure services.



<< < 12 > >>
t