Beveiligd gedeelte via login-link?
Hallo allemaal,
In mijn zoektocht naar een manier waarop onze crew (+-500 personen) zijn/haar gegevens kan updaten en bepaalde info moet doorgeven kwam ik op het volgende idee. Nu had ik graag geweten of dit wel veilig genoeg is en of dat iemand hiervoor een betere oplossing weet?
--Korte schets waarom we dit zo willen doen--
Contactmoment met elke "bezoeker/crew" slechts gedurende 2 welbepaalde maanden/jaar.
Telkens lange periode tussen twee bezoeken van de pagina (na die 2 maanden, 10 maanden geen contactmomenten nodig)
--Probleem stelling--
Veel verloren passwoorden, veel kans op vergeten gebruikersnamen etc…
--Het idee--
Persoonlijke link naar elk crewlid sturen: http://mijnsite.be?crewid=code
!! Uiteraard zou het zo maar al te makkelijk zijn om andere gegevens te kunnen zoeken dan van de persoon zelf. Dus kwam ik op volgend idee:
Genereer de unieke codes per gebruiker:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
require config.php;//db connection
$result = Mysql_query(SELECT id,geboortedatum,naam FROM tblCrew);
while($row=mysql_fetch_array($result))
{
//variabelen meteen omzetten naar salt
$name=sha1($row['naam']);
$id = $row[id]; //deze hebben we later nog nodig
$salt_id = sha1($id);
$date = sha1($row['geboortedatum']);
//nieuwe “salt” maken op basis van data, als voorbeeld telkens de eerste 4 tekens
$seclog = substr($name, 0, 4);
$seclog .= substr($salt_id, 0,4);
$seclog .= substr($date, 0,4);
$update= mysql_query("UPDATE tblCrew SET log_key='".$seclog."' WHERE id='".$id."'");
}
?>
require config.php;//db connection
$result = Mysql_query(SELECT id,geboortedatum,naam FROM tblCrew);
while($row=mysql_fetch_array($result))
{
//variabelen meteen omzetten naar salt
$name=sha1($row['naam']);
$id = $row[id]; //deze hebben we later nog nodig
$salt_id = sha1($id);
$date = sha1($row['geboortedatum']);
//nieuwe “salt” maken op basis van data, als voorbeeld telkens de eerste 4 tekens
$seclog = substr($name, 0, 4);
$seclog .= substr($salt_id, 0,4);
$seclog .= substr($date, 0,4);
$update= mysql_query("UPDATE tblCrew SET log_key='".$seclog."' WHERE id='".$id."'");
}
?>
Deze wordt dan gemaild naar de uiteindelijk gebruikers:
“Uw persoonlijke link: http://mijnsite.be?crewid=8cb2274c6412”
Deze link zou dan elke 30 dagen vernieuwd worden of op het moment dat zijn/haar gegevens werden aangepast.
Lijkt jullie dit wat of zeggen jullie “NOT DONE!”
Ik hoor het graag.
Groeten
Ward
Ik zou ieder crewlid een eigen code geven (personeelsnummer of iets dergelijks), dit kunnen ze gebruiken als inlog naam, ze per brief een tijdelijk wachtwoord sturen (waarbij ze alleen wat aan het wachtwoord hebben als ze ook hun personeelsnummer hebben), hiermee kunnen ze eenmalig inloggen, hierbij worden ze bij de eerste keer inloggen gedwongen worden om het wachtwoord te wijzigen, en hun gegevens in te voeren.
Kan hier eventueel bij helpen.
Gewijzigd op 20/11/2013 20:00:45 door Local Dev
Ik denk dat ik het als volgt ga oplossen:
Personal link ?myid=amlkjfdiupaoeraoiezr -> invulformuliertjef/webpagina -> wanneer wijzigingen zijn opgeslagen "bedankt" -> nieuwe mail naar persoon met nieuwe link + overzicht van de wijzigingen.
Mijn inziens kan ik dit volledig dichtspijkeren en is de veiligheid van onze bestanden niet ingevaar. Of denk jij eranders over?
Houd het e-mailadres aan als inlog naam. Deze zullen ze niet (snel) vergeten.
Genereer een wachtwoord, die ze bij inloggen moeten/kunnen wijzigen.
Maak een wachtwoord-vergeten link die een nieuw wachtwoord naar hun e-mailadres stuurt.
Als ze alleen 1 x per jaar een formulier moeten invullen zou je hier een id voor kunnen aanmaken en deze verwijderen als het formulier is ingevuld. Op het moment dat dit formulier weer moeten worden ingevuld moet je er dan voor zorgen dat er voor iedereen zo'n link met uniek nummer in hun postvak ligt. Dit is dan tegelijkertijd een herinnering.
Zodra deze link toegang geeft tot persoonlijke/privacy gegevens zal ik dit toch afraden.
Dat lijkt me inderdaad het veiligste. Jammer dat het enkel altijd via een loginscript moet lopen. Uiteraard is dat veilig (mits goede scripting) maar ik vraag me toch af of ik ooit mijn heilig koe ga vinden ;) Wanneer dat gebeurt dan horen jullie het wel.
Bedankt voor de respons, topic closed
Groeten
Ward
Er zijn een aantal websites waarbij ik, elke keer, een nieuw paswoord laat genereren, wegens username en/of paswoord vergeten.
Die hebben dan zo'n vreemd beleid van speciale karakters, dat het niet past in mijn lijstje van "te onthouden" gegevens.
Als je de username al niet moet te onthouden, maar enkel een e-mail adres, moet je maar de helft onthouden.
1. gebruiker logt in met e-mail (staat vast in database)
2. gebruiker krijgt een wachtwoord in de mailbox, waar een wachtwoord in staat, b.v. 2 weken geldig.
3. Na 2 weken wordt het wachtwoord automatisch verwijdert uit de database
Groet,
Tim
Ward Pauwels op 21/11/2013 09:58:52:
Ik denk dat ik het als volgt ga oplossen:
Personal link ?myid=amlkjfdiupaoeraoiezr -> invulformuliertjef/webpagina -> wanneer wijzigingen zijn opgeslagen "bedankt" -> nieuwe mail naar persoon met nieuwe link + overzicht van de wijzigingen.
Personal link ?myid=amlkjfdiupaoeraoiezr -> invulformuliertjef/webpagina -> wanneer wijzigingen zijn opgeslagen "bedankt" -> nieuwe mail naar persoon met nieuwe link + overzicht van de wijzigingen.
Dit klinkt al beter. Ik zou het dan als volgt doen:
Persoonlijke link > je krijgt een pagina met invulformulier > je kan je gegevens veranderen > er wordt een e-mail naar je verzonden die vraagt om bevestiging ( > je krijgt een mail dat de wijzigingen daadwerkelijk veranderd zijn).