ip veilig?
Ik heb een inlogsysteem gemaakt en die slaat je ip-adres op in een database om te controleren of iemand ingelogd is.
Maar is dit wel veilig?
Ja, waarom niet? Zolang je deze op de goede manier op slaat in de database met mysql_escape_string("INSERT INTO blabla (ipadres) VALUES ('".$_SERVER["REMOTE_ADDR"]."')"; o.i.d. Gebruik van mysql_escape_string(); moet je even googlen als SQL injection. :-)!
Juist :)... dan valt de conclusie snel te trekken.
Een moie manier is om Sessies te gebruiken of cookies met twee waarden (userid en een willekeurige md5()-hash) en die controleer je in de database.
Mooi voorbeeld is:
http://multisess.clayweb.nl
Handig. Veel bedrijfsnetwerken gebruiken slechts één ip-nummer. Dus als er dan iemand inlogt is het hele bedrijf ingelogd.
Kortom, NIET veilig!!
Justin schreef op 22.12.2008 14:36:
Ja, waarom niet? Zolang je deze op de goede manier op slaat in de database met mysql_escape_string("INSERT INTO blabla (ipadres) VALUES ('".$_SERVER["REMOTE_ADDR"]."')"; o.i.d. Gebruik van mysql_escape_string(); moet je even googlen als SQL injection. :-)!
neem jij je zelf serieus ?
hoop van niet.
Quote:
Deze manier is !
ongeschikt
ongeschikt
Gewijzigd op 01/01/1970 01:00:00 door RvW Of toch niet
Ik begreep 'm anders. Ik dacht dat hij de IP náást de normale login gegevens zou willen opslaan, dan zou er niks mis mee zijn. Maar als het is zoals jullie het intepreteren, is het niet veilig, dôh... Ik neem toch niet aan dat je alleen je IP adres gebruikt om in te loggen?
Ik ga wel sessies gebruiken.
Tristan van de Hoeve schreef op 22.12.2008 15:35:
Ik ga wel sessies gebruiken.
En dan op dezelfde manier? Maakt niet zo veel verschil lijkt mij.
Gewijzigd op 01/01/1970 01:00:00 door Tristan
Of je kan met cookies werken, en de dan de cookie's vergelijken met wat er in de database staat.
en die opslaat in een coockie en in de site
kan je dat gebruiken dat doe ik zelf
het principe is dat je een soort vingerafdruk neemt van de gebruiker waaronder het IP adres,user agent en een paar andere variabelen. die dus vast zitten aan 1 specifieke computer.
hier maak je een hash van die sla je op in een coockie en in je database en die kan je dan matchen. dit is redelijk veilig.
als je de zoekfunctie gebruikt zie je hier meerdere topics over.
dennis schreef op 22.12.2008 16:12:
als je een goede browserfingerprint gebruikt.
en die opslaat in een coockie en in de site
kan je dat gebruiken dat doe ik zelf
het principe is dat je een soort vingerafdruk neemt van de gebruiker waaronder het IP adres,user agent en een paar andere variabelen. die dus vast zitten aan 1 specifieke computer.
hier maak je een hash van die sla je op in een coockie en in je database en die kan je dan matchen. dit is redelijk veilig.
als je de zoekfunctie gebruikt zie je hier meerdere topics over.
en die opslaat in een coockie en in de site
kan je dat gebruiken dat doe ik zelf
het principe is dat je een soort vingerafdruk neemt van de gebruiker waaronder het IP adres,user agent en een paar andere variabelen. die dus vast zitten aan 1 specifieke computer.
hier maak je een hash van die sla je op in een coockie en in je database en die kan je dan matchen. dit is redelijk veilig.
als je de zoekfunctie gebruikt zie je hier meerdere topics over.
Hier ben ik niet echt helemaal mee eens. In PHP zijn er geen unieke waardes uit variabelen die per PC worden gegenereerd. Useragents kunnen nameljik ook hetzelfde zijn.
en je dan ingelogd bent als de username in de database voorkomt?
(het is een inlogsysteem voor een (kleine) webshop)
Wel is het goed om dit nog tegen je database aan te houden... Door bijvoorbeeld een hash van username, IP, user agent en / of logintijd op te slaan in de database, zo kun je op de server controleren of er geen gekke dingen gebeuren met de sessie.
Maar controleer dus nooit maar op 1 ding, en zeker niet op alleen user agent / IP, omdat die 2 niet zo veelzeggend zijn...
Gewijzigd op 01/01/1970 01:00:00 door Rens nvt
md5($ip,$username,$useragent,nog wat van die dingen,uniqid().
die plaats je in een coockie en in een database en zo kan je een al ingelogd script gebruiken het beste is natuurlijk wanneer je die uniqid vervangt door microtime en zo een verval tijd/datum kan maken. want alleen jij weet de volgorde van de variabelen enz.
dat is redelijk veilig en je hebt altijd een unieke hash maar controleren op alleen ip adres is ouderwets. browserfingerprinting is al een grote verbetering maar perfect is het zeker niet.
daarbij komt dat bijvoorbeeld md5 naar mijn mening ook achterhaald is.
maar zo blijf je eeuwig discusseren
Justin schreef op 22.12.2008 14:36:
Ja, waarom niet? Zolang je deze op de goede manier op slaat in de database met mysql_escape_string("INSERT INTO blabla (ipadres) VALUES ('".$_SERVER["REMOTE_ADDR"]."')"; o.i.d. Gebruik van mysql_escape_string(); moet je even googlen als SQL injection. :-)!
kun je je ip adres zodanig veranderen om een sql injectie te laten veroorzaken??
Ik heb het inlogsysteem aangepast, ik heb gebruik gemaakt van sessions in combinatie met een ip-check
dennis schreef op 22.12.2008 16:12:
als je een goede browserfingerprint gebruikt.
en die opslaat in een coockie en in de site
kan je dat gebruiken dat doe ik zelf
het principe is dat je een soort vingerafdruk neemt van de gebruiker waaronder het IP adres,user agent en een paar andere variabelen. die dus vast zitten aan 1 specifieke computer.
hier maak je een hash van die sla je op in een coockie en in je database en die kan je dan matchen. dit is redelijk veilig.
en die opslaat in een coockie en in de site
kan je dat gebruiken dat doe ik zelf
het principe is dat je een soort vingerafdruk neemt van de gebruiker waaronder het IP adres,user agent en een paar andere variabelen. die dus vast zitten aan 1 specifieke computer.
hier maak je een hash van die sla je op in een coockie en in je database en die kan je dan matchen. dit is redelijk veilig.
Over het algemeen wordt er in een bedrijfsnetwerk of schoolnetwerk gemaakt van allemaal dezelfde pc's met allemaal hetzelfde OS die ook allemaal op dezelfde manier zijn ingesteld.
Is dus niets unieks te halen voor een webserver.
Genoeg bedrijven gebruiken thin-clients waarbij applicaties vanaf dezelfde server gerunt worden. Er kunnen dan helemaal geen verschillen meer ontdekt worden...
Slechte manier dus.
Peter schreef op 22.12.2008 21:08:
kun je je ip adres zodanig veranderen om een sql injectie te laten veroorzaken??
Justin schreef op 22.12.2008 14:36:
Ja, waarom niet? Zolang je deze op de goede manier op slaat in de database met mysql_escape_string("INSERT INTO blabla (ipadres) VALUES ('".$_SERVER["REMOTE_ADDR"]."')"; o.i.d. Gebruik van mysql_escape_string(); moet je even googlen als SQL injection. :-)!
kun je je ip adres zodanig veranderen om een sql injectie te laten veroorzaken??
Daar gaat het niet om, zie het gebruik van mysq_real_escape_string van Justin. Dat slaat nergens op.
$_POST is niet veilig, $_GET is niet veilig, $_COOKIE is niet veilig, $_REQUEST is niet veilig en ook $_SERVER is niet veilig. Het lijkt me dat $_SESSION wel veilig is, maar just to be sure gooi ik ook daar altijd mysql_real_escape_string() overheen. Veiligheid voor prestaties en ik denk niet dat me dat nou zoveel server-load gaat kosten.