formulier veld opslaan als SHA1 waarde in databse

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Stefan Kuipers

Stefan Kuipers

02/06/2010 17:14:53
Quote Anchor link
Hallo,

ik heb eene probleem, tenminste ik weet niet zeker hoe ik het moet oplossen dus bij deze vraag ik het hier maar even. Ik heb wel verder gekeken, maar kon geen gelijke geval vinden ergens.

het probleem
ik wil uit een formulier data wegschrijven in mijn database

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$sql = "INSERT INTO members (compid, level, name, email, user, pass) VALUES ('".$_POST['txtcompany']."', '".$_POST['txtlevel']."',  '".$_POST['txtname']."', '".$_POST['txtmail']."', '".$_POST['txtusername']."', '".$_POST['txtpassword']."')";


nu moet alleen het laatste veld '".$_POST['txtpassword']."'
gecodeerd in SHA1 worden opgeslagen. Hoe moet ik dit oplossen?

ik dacht als volgt
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$sql = "INSERT INTO members (compid, level, name, email, user, pass) VALUES ('".$_POST['txtcompany']."', '".$_POST['txtlevel']."',  '".$_POST['txtname']."', '".$_POST['txtmail']."', '".$_POST['txtusername']."', 'sha1(".$_POST['txtpassword'].")')";


Dit is echt een gok.
Hopelijk kan iemand mij verder helpen.

alvast bedankt ^^
 
PHP hulp

PHP hulp

26/12/2024 13:46:49
 
Jo colling

jo colling

02/06/2010 17:21:42
Quote Anchor link
Werkt dat niet? op het eerste zicht is dat volgens mij juist.
Alleen zou ik het maken
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$shatext
=sha1($_POST['textpasswoord']);
//en hier gewoon de rest gewoon voor de duidelijkheid.
?>
Gewijzigd op 02/06/2010 17:23:59 door jo colling
 
Stefan Kuipers

Stefan Kuipers

02/06/2010 17:26:27
Quote Anchor link
ow.. jah probleem is kan niet script testen van hieruit heb geen server met php/sql en lokaal heb ik 1x geprobeerd om het te installeren maar kreeg constant error. Dus dat heb ik opgegeven toen.

maar als ik verder geen reacties krijg dan laat ik het zo, als wat ik als gok waagde.

bedankt ^^
 
- SanThe -

- SanThe -

02/06/2010 17:29:24
Quote Anchor link
Script is lek.
Nooit $_POST-waarden direct in de database zetten.
Zie mysql_real_escape_string)().
 
Jo colling

jo colling

02/06/2010 17:30:26
Quote Anchor link
Kan je niet gewoon testen of sha1($_POST['txtpassword']) de juiste uitkomst geeft?
 
Niels K

Niels K

02/06/2010 17:37:06
Quote Anchor link
Let op Santhe zijn toevoeging. en dit gaat ook niet werken

'sha1(".$_POST['txtpassword'].")'

Je kan beter je query opdelen en beter coderen, dan had je denk ik zelf de fout ook wel gezien..

vooruit dan maar:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php

$sql
=
"
    INSERT INTO
        members
    (
        compid,
        level,
        name,
        email,
        user,
        pass
    )
    VALUES
    (
        ' "
. mysql_real_escape_string( $_POST['txtcompany']). " ',
        ' "
. mysql_real_escape_string( $_POST['txtlevel']) . " ',  
        ' "
. mysql_real_escape_string( $_POST['txtname']) . " ',
        ' "
. mysql_real_escape_string( $_POST['txtmail']) . " ',
        ' "
. mysql_real_escape_string( $_POST['txtusername']) . " ',
        ' "
. mysql_real_escape_string( $_POST['txtpassword']) . " '
    )
"
;
?>


Ik heb expres een paar spaties gedaan zodat je het verschil kan zien.
Verder zou ik voor password een salt gebruiken. Je kan hiervoor de gebruikersnaam gebruiken maar zelf ook een salt verzinnen. Het is dan zo

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
sha1($salt . $_POST['txtpassword']);
?>


LET OP: Je moet wel eerst de velden controleren.
 
Stefan Kuipers

Stefan Kuipers

02/06/2010 17:38:29
Quote Anchor link
@SanThe NVT
deze pagina wordt straks lokaal gebruikt. Deze registratie pagina is sowieso alleen door beheerder te bereiken en verder door niemand. Maar ik zal MySQL_real_escape_string() uitzoeken en kijken hoe ik dit moet gebruiken.

@jo colling
zal morgen nog wel een poging wagen om lokaal server te starten met PHP/SQL ondersteuning. en anders zou ik niet weten hoe en waar ik kan testen.
 
Stefan Kuipers

Stefan Kuipers

02/06/2010 17:42:27
Quote Anchor link
@niels

thanks ^^ jah dat van jou is veel overzichtelijker.
Zal eens goed doornemen. ben niet zo bekend met php.. moet nog veel leren.. maar goed dat ik deze site tegen kwam.
 
Niels K

Niels K

02/06/2010 17:42:28
Quote Anchor link
xammp server downloaden?
 
Stefan Kuipers

Stefan Kuipers

02/06/2010 17:47:56
Quote Anchor link
@niels

aaaaahhh gelijk een goede server met alles erin. beter dna alles los moeten installeren en instellen.. want daar werd ik vorige keer gek van toen het niet wou lukken.

thanks!
 
Niels K

Niels K

02/06/2010 18:10:05
Quote Anchor link
Geen probleem;)
 
Erik Rijk

Erik Rijk

02/06/2010 18:42:33
Quote Anchor link
Waarom niet de SQL functie SHA1() gebruiken in je query? hoe je deze ook niet eerst door te kopieeren in een andere variabele.
 
Niels K

Niels K

02/06/2010 18:49:19
Quote Anchor link
Dat zei ik toch?

Quote:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
sha1($salt . $_POST['txtpassword']);
?>
Gewijzigd op 02/06/2010 18:49:40 door Niels K
 
Martijn B

Martijn B

02/06/2010 18:50:59
Quote Anchor link
Erik Rijk op 02/06/2010 18:42:33:
Waarom niet de SQL functie SHA1() gebruiken in je query? hoe je deze ook niet eerst door te kopieeren in een andere variabele.


Stel dat je dat doet en MySQL logt alle query's. Dan staat dus de wachtwoorden van iedereen die inlogt in dat log bestand.

Je hoeft de variabele niet te kopiëren:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$sQry
= 'SELECT kolom1' .
        ' FROM tabel' .
        ' WHERE kolom2 = ' . sha1('wachtwoord');
?>
 
Jelmer -

Jelmer -

02/06/2010 18:53:23
Quote Anchor link
Erik Rijk op 02/06/2010 18:42:33:
Waarom niet de SQL functie SHA1() gebruiken in je query? hoe je deze ook niet eerst door te kopieeren in een andere variabele.

Zouden die dan ook terug te vinden zijn in mysql's query log?
 

02/06/2010 18:56:21
Quote Anchor link
Martijn B op 02/06/2010 18:50:59:
Erik Rijk op 02/06/2010 18:42:33:
Waarom niet de SQL functie SHA1() gebruiken in je query? hoe je deze ook niet eerst door te kopieeren in een andere variabele.


Stel dat je dat doet en MySQL logt alle query's. Dan staat dus de wachtwoorden van iedereen die inlogt in dat log bestand.

Die log moet dus wel aangezet worden. Hij staat standaard uit.
 
Jelmer -

Jelmer -

02/06/2010 18:59:07
Quote Anchor link
Karl Karl op 02/06/2010 18:56:21:
Die log moet dus wel aangezet worden. Hij staat standaard uit.


Slow-query-log staat vaak aan, en daar kunnen ook op zichzelf snelle queries in terecht komen (maar die dan bijv. heel lang moeten wachten omdat de tabel gelockt is)
 
Terence Hersbach

Terence Hersbach

02/06/2010 19:02:17
Quote Anchor link
Karl Karl op 02/06/2010 18:56:21:
Martijn B op 02/06/2010 18:50:59:
Erik Rijk op 02/06/2010 18:42:33:
Waarom niet de SQL functie SHA1() gebruiken in je query? hoe je deze ook niet eerst door te kopieeren in een andere variabele.


Stel dat je dat doet en MySQL logt alle query's. Dan staat dus de wachtwoorden van iedereen die inlogt in dat log bestand.

Die log moet dus wel aangezet worden. Hij staat standaard uit.

leuk als je niet weet of je hoster het wel of niet aan hebt staan en er komt iemand anders achter ;) dus gewoon nooit doen, kan t nooit verkeerd gaan ook..
____
/offtopic :)
 

02/06/2010 19:13:07
Quote Anchor link
Terence Hersbach op 02/06/2010 19:02:17:
Karl Karl op 02/06/2010 18:56:21:
Martijn B op 02/06/2010 18:50:59:
Erik Rijk op 02/06/2010 18:42:33:
Waarom niet de SQL functie SHA1() gebruiken in je query? hoe je deze ook niet eerst door te kopieeren in een andere variabele.


Stel dat je dat doet en MySQL logt alle query's. Dan staat dus de wachtwoorden van iedereen die inlogt in dat log bestand.

Die log moet dus wel aangezet worden. Hij staat standaard uit.

leuk als je niet weet of je hoster het wel of niet aan hebt staan en er komt iemand anders achter ;) dus gewoon nooit doen, kan t nooit verkeerd gaan ook..
____
/offtopic :)


Als je helemaal veilig wilt zijn moet je gewoon je troep zelf hosten op een zelf ingestelde server, in een zelf ingerichte rack.
 
Jelmer -

Jelmer -

02/06/2010 19:21:13
Quote Anchor link
met een slot erop.
 
Martijn B

Martijn B

02/06/2010 19:27:18
Quote Anchor link
@Karl Karl:

Als je een competente systeembeheerder bent wel.
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.