Her får du hjelp til å lage hjemmeside med video. Alle verktøy og programmer vi bruker til å lage webside er gratis.
sikring og kryptering av passord i MySQL
- Logg på eller opprett en konto for å skrive kommentarer
Denne tråden håper jeg at kan bli univerisell for alt innen optimal passordprogrammering...
Det er x ting jeg ønsker å ta opp:
#1 kryptering/dekryptering
#2 validering (kvalitet/styrke)
#1 Kryptering / dekryptering
Problemet jeg stor ovenfor, er å kunne definere ett gitt passord i en form, laste det opp til databasen (som kryptert) hvor man så senere kan benytte dette passordet til pålogging til medlemsområdet. No big deal, nothing special. Bare at jeg ikke får det til.
har forsøkt md5(); - men den skar seg kraftig. I databasen fikk jeg opp md5('mittpassord').Noe må ha gått galt i forbindelse med opplastingen. Ingen passord fungerte til slutt...
Jeg har blandt annet lest at md5(); ikke er den beste løsningen lenger?...
#2 validering
Når en bruker definerer ett passord så må det inneholde ett minimum av tegn: kan gjøres ved strlen();
Må også sjekke at det inneholder både tall og både STORE og små bokstaver: Kan gjøres via for();-loop mener jeg på.
Men først, #1 - krypteringen.
jeg har denne koden idag:
mysql_query("
UPDATE table SET password = '$_POST[pw]' WHERE member = '$data[member]'");
mysql_close($eke_connection);
Forsøkte meg på mysql_real_escape_string(); på passordet der, men da ble det aldri oppdatert...
Men, uansett, hvordan får jeg til en krypteringsfunksjon her?
og i forbindelse med mysql_real_escape_string blir det noe slik da?
$user = mysql_real_escape_string($_POST['username']);
$pass = mysql_real_escape_string($_POST['password']);
$query = sprintf('SELECT * FROM table WHERE user = \'%s\' AND pass = PASSWORD(\'%s\')', $user, $pass);
I forbindelse med alle tidligere spørringer du har sendt databasen din, og hvis du ser hva du har gjort i tidligere script og hva jeg har fortalt deg tidligere, hva tror du?
Har du prøvd scriptet ditt og sett om det fungerer?
Ville bare forhøre meg om dette, litt med sikkerhet det også:
Er stripslashes(); det samme som \' ... \' i praksis?
stripslashes(); tar bort ' og ".
\ unngår jo ' og " og leser det som ren tekst. sant?
På en måte lignende, men kansje ikke helt det samme?
Nei, strip betyr jo å fjerne noe, jfr. strippende damer.
Når man bruker stripslashes($var) så fjerner man slashene i stringen. Eksempel:
<?php
$var = "The poop\'s pee";
print $var;
# The poop\'s pee
print stripslashes($var);
# The poop's pee
?>tenkte kansje på addslashes. De legger jo til en i begynnelen og slutten...
Nei, addslashes() legger ikke en slash til på begynnelsen og slutten, men escaper stringen. Eksempel:
<?php
$var = "The poop's pee";
print addslashes($var);
# The poop\'s pee
?>Men det er anbefalt at du bruker mysql_real_escape_string() fremfor addslashes().
ser den...
Men tilbake til post 2. Blir det noe slik
done.... hehee... ble noe styr og frem og tilbake... men nå er passordene kryptert.
stringene er på henholdsvis 41 tegn, noe jeg ser på som bedre enn md5 med sine 32.
Men, trudde PASSWORD skulle definere en random string hver gang, selv om passorde var like. Men det gjorde det ikke.
Men såpass trenger man kasnje ikke?
Neida, personlig synes jeg PASSWORD-funksjonen i MySQL holder i massevis til denne typen bruk. Ville nok gått for noe annet om jeg skulle sikret passordet til nettbank el.l. though.
for moroskyld. hva har du i tankene?
Jeg hadde laget min egen krypteringsalgoritme + validering ved å sende et random engangspassord via SMS. På den måten må en "innbruddstyv" ha tilgang til mobiltelefon og passord for å få tilgang til informasjonen.
Har selv Skandiabanken og der bruker de et slikt system for innlogging. Det samme gjør staten med MinID. Er det godt nok for dem så er det godt nok for meg.
Skal man virkelig kryptere hardcore så kan man kjøpe tilgang til datastrømmer som lages på bakgrunn av støy i universet, hehe.
såpass ja... Den siste der virket ganske hardcore da:P hehee
Men det å sende SMS, er det veldig stort prosjekt å få til? Og er det store kostnader med det?
Ja, men veldig nyttig å bruke støy fra universet for å tilfeldiggjøre ting. Dette blir gjerne brukt av pokernettsteder for å stokke kort tilfeldig. Det gjøres fordi programmert algoritme aldri er sikker og helt tilfeldig og dermed kan hackes. Du kan jo tenke deg hva det ville innebære om du kunne forutse hvilke kort som ble delt ut. :)
Det er et stort og relativt kostbart prosjekt å sende SMS for validering, ja. Det er flere måter å løse det på. En er å ta betalt per innlogging (som betyr drepen for nettstedet ditt), en annen er å påta seg kostnaden (som kan bety høye regninger). Dette er en løsning jeg kun ville brukt om det var snakk om veldig viktige data og potensielt stort skadeomfang, f.eks. i en nettbank.
kan du forklare litt rundt "salt" og "seed" metodene?
har lest litt og får forsåelse av at de kan være nyttige sikkerhetstiltak.
"salt" menes å kombinere flere felter og gjøre *noe* med de... Samle de eller noe.
"seed" er jeg ikke helt sikker på... Sto veldig lite om det på siden, men de ble satt en random string i toppen som ble brukt i forbindelse med validering av passord.



Først vil jeg bare si noe om kryptering av passord, vi kan se på validering senere.
Kryptering av passord i MySQL
Det er veldig enkelt å kryptere et passord med MySQL, og slik kan det gjøres
Kryptere passord ved hjelp av PASSWORD()
INSERT INTO users (name, pass) VALUES ('Titten Tei', PASSWORD('hemmelig');Og dermed var passordet kryptert. For å hente ut;
SELECT * FROM users WHERE name='Titten Tei' AND pass=PASSWORD('hemmelig');Hjelper folk å lage hjemmeside