beveiliging
Pagina: 1 2 3 ... 5 6 7 volgende »
hier staan in de database veel klnt gegevens,
deze moet dus goed beveiligd worden...
waar kan i kdaarmee beginnen?
ik heb al gewoon een login systeem... en een safe.php script
die kijkt of en cookie is aangemaakt en anders wordt je terug gestuurd naar login pagina
als je het script geeft, dan kunnen we ook je script na kijken, zo komen we natuurlijk niet echt verder...
dit is mijn safe.php:
Code (php)
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
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?
if(isset($_SESSION['user_id'])) {
// Inloggen correct, updaten laatst actief in db
$sql = "UPDATE gebruikers SET lastactive=NOW() WHERE id='".$_SESSION['user_id']."'";
mysql_query($sql);
}else{
if(isset($_COOKIE['user_id'])) {
$sql = "SELECT wachtwoord,status FROM gebruikers WHERE id='".$_COOKIE['user_id']."'";
$query = mysql_query($sql);
$rij = mysql_fetch_object($query);
$dbpass = htmlspecialchars($rij->wachtwoord);
$dbstatus = htmlspecialchars($rij->status);
if($dbpass == $_COOKIE['user_password']) {
$_SESSION['user_id'] = $_COOKIE['user_id'];
$_SESSION['user_status'] = $dbstatus;
}else{
setcookie("user_id", "", time() - 3600);
setcookie("user_password", "", time() - 3600);
echo "Cookies incorrect. Cookies verwijderd.";
header("Location: inloggen.php");
}
}else{
header("Location: inloggen.php");
}
}
?>
if(isset($_SESSION['user_id'])) {
// Inloggen correct, updaten laatst actief in db
$sql = "UPDATE gebruikers SET lastactive=NOW() WHERE id='".$_SESSION['user_id']."'";
mysql_query($sql);
}else{
if(isset($_COOKIE['user_id'])) {
$sql = "SELECT wachtwoord,status FROM gebruikers WHERE id='".$_COOKIE['user_id']."'";
$query = mysql_query($sql);
$rij = mysql_fetch_object($query);
$dbpass = htmlspecialchars($rij->wachtwoord);
$dbstatus = htmlspecialchars($rij->status);
if($dbpass == $_COOKIE['user_password']) {
$_SESSION['user_id'] = $_COOKIE['user_id'];
$_SESSION['user_status'] = $dbstatus;
}else{
setcookie("user_id", "", time() - 3600);
setcookie("user_password", "", time() - 3600);
echo "Cookies incorrect. Cookies verwijderd.";
header("Location: inloggen.php");
}
}else{
header("Location: inloggen.php");
}
}
?>
Je hebt totaal geen witregel en de tabs zijn ook niet echt heel duidelijk 2 spaties?
en mysql_real_escape_string() is misschien ook wel een goede ;)
Gr,
Verder raad ik aan om mysql_fetch_assoc (array's) te gebruiken i.p.v. het trage mysql_fetch_object.
Ook raad aan ik aan om zeker geen statussen in een sessie of een cookie te plaatsen, maar deze uit de database op te halen.
Verder zie ik geen foutafhandeling. Want wat als display_errors uit staat en je query mislukt door een typfout ofzo?
en het blijft werken?
en hoe kan ik mijn website wel goed beveiligen dan?
-> Je zet zomaar het wachtwoord (of die nu gehashed is of niet) in een cookie.
Dit moet je nooit doen, niets waar ook maar in de verte het username of password uit te halen is in je cookie opslaan. Genereer bijvoorbeeld aan de hand van microtime() en informatie over de computer van de bezoeker/ het ip een hash (sha1 bijvoorbeeld) en sla die op in je cookie. Dit is een unieke code die je kan gebruiken om usergegevens op te vragen.
Het is dan voor iemand niet zomaar mogelijk de gebruikersnaam/ wachtwoord te bepalen door te decoderen.
Incarnez schreef op 11.12.2009 15:03:
kan ik gewoon die mysql_fetch_object veranderen door mysql_fetch_assoc,
en het blijft werken?
en het blijft werken?
Ja, moet je wel met array's werken.
$show->bericht wordt dan $show['bericht']
maar dat lost het natuurlijk niet op,
ik wilhet graag ged beveiligen..
maar ik moet dus uit het inloggen.php uithalen dat hij wachtwoord opslaat in cookie...
username mag dus wel?
en wat moet ik er nog meer in opslaan dan?
en wat is er nog meer belangrijk?
maar krijg nu deze error?
Fatal error: Maximum execution time of 30 seconds exceeded in Z:\UsbWebserver goedteeee\UsbWebserver\Root\website\categorie\add_cat1.php on line 20
dit was na de mysql_fetch_object verandering...
en hoe maak/controleer ik een hash?
Gewijzigd op 01/01/1970 01:00:00 door Jaap V
Kijk, ik snap dat je voor een bedrijf een site maakt, en belangrijke gegevens moet beveiligen, maar je kan niet scripten? Of, wel scripten maar, dit niet. Is het dan niet beter om gewoon eerst ergens een tutorial te lezen ofzo?
ik maak een website voor een bedrijf war ik stage loop,
dit is dus mijn stage opdracht
website is ondertussen klaar...
en resultaat is wel aardig...
maar omdat ik nog weinig ervaring mee heb,
en hier om HULP vraag,
omdat ik niet weet waar te beginne...
valt het tutorial lezen ook nietmee
I know. Ik vind het ook goed van je hoor. Je leert het beste door te doen. Maar dit zei ik omdat, "zoals jij het omschreef" het om een belangrijke website gaat. daarom.
het is een website die hier enkel en alleen gebruikt wordt en toegankelijk moet zijn voor het personeel hier (5 man)...
hierin staan logboeken met dingen die ze gedaan hebben,
en alle klant gegevens...
nogal logisch dat dit goed beveiligd moet worden...
maar omdat ik daar nog geen kaas van gegeten heb,
vraag ik hier juist om uitleg...
ik merk dat een wachtwoord in cookie opslaan niet zon goede zet is geweest...
kan ik dit gemakelijk veranderen in een willekeurige hash?
en dien ik deze weer op te slaan in database?
hoe gaat dit allemaal?
greets
passwords staan in de database. als je een cookie systeem wilt bouwen, zonder cookies, gebruik je database. Doe exact hetzelfde. Sla een ip adres op, een vervaldatum, wachtwoord en username. En check bij het bezoeken van de website of dat ip adres een "DB cookie" heeft, en of de username en pass kloppen.
dit hoor ik op te slaan bij het inloggen?
en dan met de check kijken ofdat het nog allemaal klopt?
hoe kan ik dit controleren?
met if vervaldatum < date(now)
sesion DIE ofzo?
ik snap het niet echt?
oke, je hebt een gebruiker, die logt in, ik neem aan dat je dan ergens in de database kijkt, of de username en password kloppen? *beveilig ook dit goed!*
nou, als de gebruiker dan heeft aangevinkt *onthoud mij*
insert into phpcookies (ipaddress, user, password, expire) values (logisch toch?)
dan de volgende keer, dat de gebruiker op de index.php komt, word deze rechtstreeks ingelogd. Dat doe je door te checken of ip adress in de db staat
select * from phpcookies where ipaddress = $bezoekerIp
als dit meer als 0 records oplevert,
if(mysql_num_rows(mysql_query("select * from phpcookies where ipaddress = $bezoekerIp") > 0)
Bestaat er een phpcookie. dan ga je met die gegevens checken, *net als bij het inloggen* of de username en password kloppen.
ook wel handig om daar een check voor te maken.
Code (php)
edit wesley is me .00001 seconde voor -.-
Gewijzigd op 01/01/1970 01:00:00 door bart niethenk
ik ga maandag verder ermee,
dan ga ik wel even tutorials zoeken op het internet...
jullie leggen het goed uit,
maar ik begin wel bij het begin :)
Zoek eens wat tutorials over Sessies, database (en misschien nog een basis php tutorial) op. Ik denk dat het doorwerken daarvan je misschien een dag kost maar je veel tijd scheelt.