Hallo,

Onlangs heb ik een heel systeem (PHP, MySQL, JavaScript, HTML, CSS) gemaakt waar mensen kunnen inloggen facturen in kunnen zien, tickets kunnen aanmaken etc. echter is mijn vraag; Is hij wel veilig?!

Wat gebruik ik;

- PDO, Incl. Prepared statements
- Special Character filter, alles wordt omgezet VOORDAT het in een Query komt. Bijv. " wordt &quot; en < wordt &lt;
- Aan bijv facturen en berichten geef ik 2 random md5 hashes mee, deze hashes moeten correct zijn in combinatie met het klantnummer.
- Eventuele parameters die in de URL gegeven zijn worden eerst Special Character gefilter VOORDAT het in de Query komt.
- Prepared Statements worden gebruikt.
- Bij het inloggen wordt en een random session_hash gegenereerd, als men uitlogt en weer inlogt heeft men een andere session_hash. Zover ik weet is session hijacking dus niet mogelijk omdat de session ids wisselen.
- IP wordt gelogd tijdens het inloggen, hierin wordt ook aangegeven of de login succesvol was of niet en als er een klant bestaat met het email ook het klantnummer waar de login betrekking op heeft.
- De admin interface wordt gecheckt of het IP juist is, is dit niet het geval dan wordt je naar de error pagina gestuurd.

Voor zover ik weet is hij nu dus enkel vurnirable als je in de server komt omdat;

- Alles eerst gefilterd wordt en geprepared is.
- XSS is niet mogelijk doordat JavaScript niet uitgevoerd wordt dankzei de filtering van onder andere < en >.
- Sessie Hijacking is niet mogelijk doordat de sessie id steeds veranderd.
- Ik heb er met Havij Pro opgezeten, deze gaf naar herhaaldelijk proberen steeds een error terug dat hij niks kon vinden

Mijn vraag is, kloppen mijn veronderstellingen en is hij inderdaad veilig? (Ik weet ook wel dat niks 100% safe is natuurlijk) Maar ik wil gewoon zeker weten dat hij niet makkelijk te hacken is.

Graag hoor ik van jullie!
Ward van der Put op 04/06/2014 18:00:08

[quote="Harry hogeveen op 04/06/2014 17:38:38"]
Waarom altijd IP's opslaan? Dat lijkt me alleen nuttig als je het gebruikt om ergens mee te vergelijken, bijvoorbeeld om het maximaal aantal login pogingen bij te houden. Verder zegt een IP toch bijna niks?

Als je achteraf patronen wilt kunnen vinden in hackpogingen en andere soorten misbruik, is het wel verstandig ook IP-adressen op te slaan in een activiteitenlog. Bij onderzoek naar bijvoorbeeld oplichting is de recherche je erg dankbaar als je zo'n log kunt overleggen.
[/quote]

Inderdaad, de user met Admin level krijgt een overzicht met login pogingen en als er herhaaldelijk op het zelfde account is ingelogd met het zelfde IP dan worden er stappen ondernomen als de user geregistreerd is, als dit niet het geval is wordt het IP adres geweerd van de website. (Met herhaaldelijk foutief inloggen heb ik het over 20+)
Oh, vreemd dat ik dit eerder niet gemeld hebt:
De manier waarop je wachtwoorden hasht is 'snel', vertraag het aub door het bijvoorbeeld 8000 keer te hashen of Bcrypt/Scrypt te gebruiken.

Reageren