ip veilig?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Tristan

Tristan

22/12/2008 14:28:00
Quote Anchor link
Hallo,
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?
 
PHP hulp

PHP hulp

22/12/2024 19:04:39
 
Justin S

Justin S

22/12/2008 14:36:00
Quote Anchor link
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. :-)!
 
- Ariën  -
Beheerder

- Ariën -

22/12/2008 14:38:00
Quote Anchor link
En wat als er meerde mensen op 1 IP zitten wat erg vaak gebeurt op scholen, bedrijven etc...?
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
 
- SanThe -

- SanThe -

22/12/2008 14:40:00
Quote Anchor link
Dus als je ip in de database staat dan ben je ingelogd?

Handig. Veel bedrijfsnetwerken gebruiken slechts één ip-nummer. Dus als er dan iemand inlogt is het hele bedrijf ingelogd.
 
Dennis Mertens

Dennis Mertens

22/12/2008 14:49:00
Quote Anchor link
Kortom, NIET veilig!!
 
RvW Of toch niet

RvW Of toch niet

22/12/2008 14:53:00
Quote Anchor link
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
Gewijzigd op 01/01/1970 01:00:00 door RvW Of toch niet
 
Justin S

Justin S

22/12/2008 14:59:00
Quote Anchor link
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?
 
Tristan

Tristan

22/12/2008 15:35:00
Quote Anchor link
Ik ga wel sessies gebruiken.
 
- SanThe -

- SanThe -

22/12/2008 15:38:00
Quote Anchor link
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.
 
Tristan

Tristan

22/12/2008 15:57:00
Quote Anchor link
wat bedoel je met dezelfde manier en hoe moet ik sessies dan goed gebruiken?
Gewijzigd op 01/01/1970 01:00:00 door Tristan
 
- Ariën  -
Beheerder

- Ariën -

22/12/2008 16:09:00
Quote Anchor link
je zou PHP-Sessions kunnen gebruiken. Dit werkt haast net al met cookies, maar niet iets anders. Zie de tutorials.

Of je kan met cookies werken, en de dan de cookie's vergelijken met wat er in de database staat.
 
Dennis

dennis

22/12/2008 16:12:00
Quote Anchor link
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.
 
- Ariën  -
Beheerder

- Ariën -

22/12/2008 16:16:00
Quote Anchor link
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.

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.
 
Tristan

Tristan

22/12/2008 18:55:00
Quote Anchor link
is het veilig genoeg als ik de username in een sessie zet.
en je dan ingelogd bent als de username in de database voorkomt?
(het is een inlogsysteem voor een (kleine) webshop)
 
Rens nvt

Rens nvt

22/12/2008 19:25:00
Quote Anchor link
Het is over het algemeen aan te raden om een deel van de gegevens op te slaan in je sessie. Deze variabelen zijn namelijk tijdens het hele bezoek aanwezig, en dus een mooie indicatie (en snel beschikbaar).
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
 
Dennis

dennis

22/12/2008 20:14:00
Quote Anchor link
@aar. er is niet iets wat 100% uniek is maar het kan wel unieker zijn dan alleen ip adres wat ik zelf doe is

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
 
Kumkwat Trender

Kumkwat Trender

22/12/2008 21:08:00
Quote Anchor link
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??
 
Tristan

Tristan

22/12/2008 21:19:00
Quote Anchor link
Ik heb het inlogsysteem aangepast, ik heb gebruik gemaakt van sessions in combinatie met een ip-check
 
PHP Newbie

PHP Newbie

22/12/2008 21:58:00
Quote Anchor link
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.


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.
 
Klaasjan Boven

Klaasjan Boven

22/12/2008 22:13:00
Quote Anchor link
Peter schreef op 22.12.2008 21:08:
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.
 
PHP Newbie

PHP Newbie

22/12/2008 22:16:00
Quote Anchor link
Geen enkele waarde die je ophaalt van buiten jouw systeem is veilig.

$_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.
 

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.