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)
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:
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.
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.
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...
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...
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 ;)
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 ;-)
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?
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...
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?
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 :)
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... "
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
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...)
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 kan vidst godt lukke nu - Altså ikke fordi jeg havde glemt det... ;-)
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.