Avatar billede nikolajdu Nybegynder
01. august 2003 - 12:58 Der er 52 kommentarer og
6 løsninger

Login Sikkerhed

Hvordan opnår man den største sikkerhed ved login?

Jeg har tidligere brugt sessions men er det sikkert nok? De kan jo sniffes.

Hvordan ville i gøre?

/Nikolaj
Avatar billede TRoXa Novice
01. august 2003 - 13:00 #1
.htaccess filer elsker jeg :D det er god sikkerhed
Avatar billede TRoXa Novice
01. august 2003 - 13:00 #2
Avatar billede nikolajdu Nybegynder
01. august 2003 - 13:02 #3
Vi taler login på en hjemmeside - Det er ikke så nydeligt med htaccess :((
Avatar billede riversen Nybegynder
01. august 2003 - 13:05 #4
hvis jeg lige må spørge...hvordan sniffes de? bare lad være med at svare, hvis det ødelægger spørgsmålet.
Avatar billede nikolajdu Nybegynder
01. august 2003 - 13:07 #5
Man kan sniffe sessions med forskellige programmer - Derfor skal jeg høre hvor sikre de nu en gang er. :))
Avatar billede lundeman Nybegynder
01. august 2003 - 13:07 #6
Det eneste der er rigtigt sikkert er ved at køre det over https.
Avatar billede fangel Nybegynder
01. august 2003 - 13:08 #7
umidbart vil jeg sige at sessions er rigtig sikre! (du kan kompinere dem med en cookie på computer der indeholder noget tilfædig data, så session og cookie skal være ens...

dette vil stadig kunne sniffes, men hvis det er eneste problem, så skal man ikke være bange (man kan bruge https - men det grænser til det paranoide hvis det ikke er til online betaling)

Morten
Avatar billede nikolajdu Nybegynder
01. august 2003 - 13:09 #8
Lundeman - Det er rigtigt nok, men vi taler en ganske almindelig hjemmeside og https er lige i overkanten for budgettet ;-)

Jeg skal bare vide hvordan jeg beskytter en almindelig hjemmeside optimalt.

Dea_pg - Jeg har allerede kombineret det med en cookie, men nu er jeg jo paranoid - Så jeg spørger løs :))
Avatar billede erikjacobsen Ekspert
01. august 2003 - 13:11 #9
paranoid? Så ligger det vel ikke på et webhotel, men på en dedikeret server?
Avatar billede nikolajdu Nybegynder
01. august 2003 - 13:12 #10
Erik - sæ'fø'li og står i et bomberum ;-)
Avatar billede fangel Nybegynder
01. august 2003 - 13:14 #11
hvis du - som jeg - godt kan lide at dele filer op, får at kunne inkludere dem senere, så har jeg lavet en sød lille kodestump der kan se om filen bliver kaldt direkte eller om der bliver inkluderet:

  if(basename($_SERVER['PHP_SELF']) == basename(__FILE__)) {
    header("LOCATION: ./kan_du_lade_vaere_med_det.php");
    exit;
  }

Morten
Avatar billede erikjacobsen Ekspert
01. august 2003 - 13:15 #12
riversen: på fx et dårligt konfigureret "boligforenings"-net får man måske
alles pakker til sin maskine og kan derfor se indholdet. Det er desværre en
reel trussel.
Avatar billede fangel Nybegynder
01. august 2003 - 13:15 #13
du huske også at tage backup hvert 15. minut og flytte båndene med backupen 30km hen i et andet bombesikkert rum

og have en UPS med 24 timers batteri...

Morten
Avatar billede exp Juniormester
01. august 2003 - 13:22 #14
Og 128bit kryptering...
Avatar billede nikolajdu Nybegynder
01. august 2003 - 13:26 #15
exp - Det skal vidst forklares/dekrypteres :))
Avatar billede erikjacobsen Ekspert
01. august 2003 - 13:27 #16
dea_pg: det er da et sjovt script, men hvordan øger det sikkerheden?
Er man i stand til at inkludere, vil man jo også være i stand til blot
at læse indholdet med almindelige filoperationer.
Avatar billede sostack Nybegynder
01. august 2003 - 13:28 #17
Hvad med at bruge 2 RAID 5 set med hotswapdiske i raid 0 1 spejl ??

//sostack
Avatar billede squashguy Nybegynder
01. august 2003 - 13:29 #18
man kunne vel egentlig godt lave et javascript, som krypterer data med brugerens password, inden det sendes afsted...
Avatar billede fangel Nybegynder
01. august 2003 - 13:30 #19
lad os sige du har et system der er bygget op af moduler:

du har en index.php der inkludere nogle filer alt efter hvilket modul der er valgt

dette modul vil jo så skrive noget på siden, så for at omgå ens beskyttelse kan man bare gå direkte ind på modulet (og misse alt der funky grafik - men dataene vil stadig komme frem) - det er her mit script kommer ind...

Morten
Avatar billede exp Juniormester
01. august 2003 - 13:32 #20
nikolajdu >>
login-informationerne skal jo også være sikre i det øjeblik de sendes fra comp'en, så de skal selvfølgelig krypteres INDEN de forlader denne...
Avatar billede nikolajdu Nybegynder
01. august 2003 - 13:33 #21
sostack nu har jeg faktisk raid controllere men det er vidst ikke lige her de kommer ind :)
Avatar billede nikolajdu Nybegynder
01. august 2003 - 13:35 #22
exp - Lige nu bruger jeg md5 - Nogle bedre bud?
Avatar billede erikjacobsen Ekspert
01. august 2003 - 13:37 #23
Så, dea_pg, hvis man har et login-system med moduler, og man ikke i toppen
af hver fil (også dem man inkluderer) checker at man er logget ind, så vil
dit script øge sikkerheden. Det er jo rigtig nok ;)
Avatar billede erikjacobsen Ekspert
01. august 2003 - 13:37 #24
Der er intet i md5 der i sig selv øger sikkerheden, nikolajdu - det
kommer ganske an på hvordan det bruges.
Avatar billede squashguy Nybegynder
01. august 2003 - 13:37 #25
hvis man sniffer brugerens md5 hashes, kan man vel stadig logge ind som denne, right?
Avatar billede exp Juniormester
01. august 2003 - 13:40 #26
Nu er jeg desværre ikke den store krypteringshaj... Men har da ofte set folk herinde der ender i de giftige diskussioner desangående!
Men jeg er også en HASH'er ;-)
Avatar billede nikolajdu Nybegynder
01. august 2003 - 13:41 #27
if(md5($_POST["password"])== md5($sql_pass))

Sårn i den dur - Holder den i byretten?
Avatar billede squashguy Nybegynder
01. august 2003 - 13:42 #28
set i mine øjne, er det en si.
Avatar billede fangel Nybegynder
01. august 2003 - 13:44 #29
passworded i MySQL databasen skal slf. være krypteret...

og hvis du kryptere passworded client-side, så vil det orig. password aldrig blive sendt mellem de 2 parter!

Morten
Avatar billede repsac Nybegynder
01. august 2003 - 14:09 #30
nikolajdu: nej, den holder ikke i byretten -- det hjælper _intet_!
Det du i stedet _kan_ gøre er at gemme brugeres kodeord md5-hash'et i databasen, dvs. du gemmer ikke på brugerens password, men på et hash af det... det betyder at hvis nogen skulle påtvinge sig adgang til din database kan vedkommende ikke se alle brugeres kodeord... men har de adgang til at se er det givetvis ikke det store problem også at få adgang til at ændre, så det betyder ikke det store.

Mht. kryptering med java script: disable JavaScript i browseren -- hvad gør man så? Så kan man bare ikke bruge siden?
Avatar billede fangel Nybegynder
01. august 2003 - 14:12 #31
repsac => at nogle ikke kan bruge siden stopper ikke så mange ;) (fx er der jo mange sider som slet ikke kan vises i fx Mozilla)

Morten
Avatar billede repsac Nybegynder
01. august 2003 - 14:12 #32
nikolajdu: faktisk gør det det kun mere usikkert (det du skrev kl. 13:41:29). Flere forskellige bogstavkombinationer kan nemlig godt have samme hash-værdi...
Avatar billede repsac Nybegynder
01. august 2003 - 14:14 #33
dea_pg: "mange sider som slet ikke vises i fx Mozilla" -- Hvilke? Jeg har ikke stødt på nogen endnu!
... findes der en hash-funktion i JavaScript der laver hashes på samme måde som php's md5?
Avatar billede fangel Nybegynder
01. august 2003 - 14:15 #34
prøv fx:
www.ab-fodbold.dk
www.molslinien.dk <= reservationen

Morten
Avatar billede nikolajdu Nybegynder
01. august 2003 - 15:09 #35
Repsac så er det selvfølgelig du kommer med det magiske eksempel på hvad jeg så gør :))
Avatar billede repsac Nybegynder
01. august 2003 - 17:54 #36
Jeg ville vælge mellem at acceptere tingene som de er, eller investere i https...

dea_pg: de to sider kan ikke vises i mozilla? Sidder bare ved en terminal, så jeg har "kun" links til rådighed, hvorfor jeg ikke kan teste :) ... meeen jeg tror jeg overlever ikke at kunne se de to sider hvis det skulle være tilfældet ;)
I øvrigt er det de førte sider jeg i så fald har set der _ikke_ kan vises i mozilla :)
Avatar billede nikolajdu Nybegynder
01. august 2003 - 17:59 #37
Nu har jeg ikke leget med hash i mange år, så en forklaring på : "md5-hash'et i databasen, dvs. du gemmer ikke på brugerens password, men på et hash af det... "
Avatar billede fangel Nybegynder
01. august 2003 - 18:01 #38
jep -

når du opretter en bruger tager du en md5 hash af brugerens password og gemmer i databasen - når man så loger ind, så md5'er den det indtastede password og tjekker med de md5 sum'er som der ligger i databasen

på den måde står passwordene ikke bare som rentekst i databasen

Morten
Avatar billede repsac Nybegynder
01. august 2003 - 18:06 #39
det kan også være en fordel hvis man nu i hasten skulle glemme at addslashes'e brugerinput på en SELECT-forespørgsel :)
Avatar billede repsac Nybegynder
01. august 2003 - 18:12 #40
Note: et hash er et "fingeraftryk" af en tekststreng (/fil/etc.).
Dvs. hvis du gemmer et hash ("fingeraftryk") af tekststrengen (kodeordet), så kan du når brugeren indtaster tekststrengen (kodeordet) tage hash-værdien på brugerinput'et og sammenholde det med den hash-værdi som du allerede har (i databasen).
Det gode ved hash-værdier er at de ikke kan "inverteres", dvs. man kan ikke lave en funktion, 5dm (hehe), der laver hash-værdien om til den oprindelige tekststreng... Det dårlige er så at flere tekststrenge godt kan have samme hash-værdi (man kan ofte lukrere på dette hvis man brute force'er et password, fordi man ikke nødvendigvis behøver at finde det _ene_ password der er det rigtige, men "bare" kan finde en anden tekststreng med samme hash-værdi...)
Avatar billede fangel Nybegynder
01. august 2003 - 18:44 #41
5dm kan man ikke lave af to grunde
- md5 er en "one-way street"
- funktioner's nanve må ikke starte med tal ;)

Morten
Avatar billede nikolajdu Nybegynder
01. august 2003 - 22:24 #42
hvordan laver man så hash altså udover fra hampplanter....
Avatar billede repsac Nybegynder
01. august 2003 - 23:21 #43
$var = md5('string');
så indeholder $var md5-hash'et til strengen 'string'...
Avatar billede nikolajdu Nybegynder
02. august 2003 - 07:12 #44
Jeg troede at et hash var en del af streng. Her er det vel det samme som min  : if(md5($_POST["password"])== md5($sql_pass))

??
Avatar billede fangel Nybegynder
02. august 2003 - 12:14 #45
bort set fra at du hash'er passwordet før det kommer i databasen, ja

Morten
Avatar billede nikolajdu Nybegynder
02. august 2003 - 22:47 #46
Nu er fristaden ikke lige mig - Hvordan hasher jeg så?
Avatar billede repsac Nybegynder
02. august 2003 - 23:44 #47
nikolajdu: et hash er et fingeraftryk, altså en bestemt værdi for en streng. md5 er en hash-funktion, dvs. den funktion producerer et hash af en tekststreng...

Hvis
$var = md5('sko');
så er $var md5-hash-værdien af tekststrengen 'sko' -- prøv en gang
echo md5('sko');

Det if-statement du laver gør kun tingene værre. Man kunne (næsten) sammenligne det med at bruge strtolower i stedet for...

Jeg har svært ved at gøre det mere klart... :-/
Avatar billede kohaar Nybegynder
03. august 2003 - 01:58 #48
Avatar billede nikolajdu Nybegynder
06. august 2003 - 23:03 #49
Alle der har bidraget - Smid et svar så jeg kan få lukket. :))

Må vidst hellere sætte pointene lidt op men det bliver når jeg har set antallet af svar :)
Avatar billede kohaar Nybegynder
07. august 2003 - 00:22 #50
Kohaar her... Vil gerne have 1. point ;-)
Avatar billede tipsen Nybegynder
07. august 2003 - 01:17 #51
Jeg vil foreslå at kigge nærmere på: http://www.owasp.org

Specielt den guide de laver er ganske fremragende: http://prdownloads.sourceforge.net/owasp/OWASPGuideV1.1.1.pdf?download
Avatar billede nikolajdu Nybegynder
07. august 2003 - 01:23 #52
men tipsen smider du ikke også et svar :))
Avatar billede tipsen Nybegynder
07. august 2003 - 10:45 #53
Så skidt da ;-)
Avatar billede fangel Nybegynder
07. august 2003 - 14:31 #54
jeg kan også lige ;)
Avatar billede nikolajdu Nybegynder
07. august 2003 - 14:35 #55
troxa og repsac - Hvis I har tid ;-)
Avatar billede repsac Nybegynder
08. august 2003 - 00:06 #56
/me har ikke tid, men poster da et svar alligevel ;)
Avatar billede repsac Nybegynder
08. august 2003 - 00:06 #57
pis
Avatar billede nikolajdu Nybegynder
26. august 2003 - 11:33 #58
Jeg kan vidst godt lukke nu - Altså ikke fordi jeg havde glemt det... ;-)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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