Directory Password protect
Stel je voor, ik maak nou een pagina aan, website.nl/pagina/
Als ik deze directory beveilig met een wachtwoord op de directory via hosting, Is dit veilig?
Kunnen mensen nog steeds op deze pagina komen zonder wachtwoord?
In de praktijk is het veilig, tenzij je een lek op je website heb waarmee je bestanden kan includeren (ook Local File Inclusion genoemd, of LFI) ) via aanpasbare waardes (zoals $_GET en $_POST).
En bedoel je met website de hele website of alleen de map /pagina?
Voorbeeld:
En dan zou je het via deze URL de inhoud kunnen ophalen:
http: //vulnerable_host/preview.php?file=topsecret/index
Dus mocht je gebruik maken van een pagina-systeem om via $_GET de pagina's in te laden, wees dan vooral goed op je hoede!
Gewijzigd op 30/06/2015 21:10:20 door - Ariën -
Is er een betere manier om zo een pagina te beveiligen?
WAT probeer je precies te beveiligen?
- bestanden in een directory
- toegang tot scripts die je in staat stellen om "administratieve taken" uit te voeren
- iets anderes?
WAARTEGEN dient dit beveiligd te worden?
- ongeauthoriseerd opvragen (van bijvoorbeeld afbeeldingen of andere documenten)
- ongeauthoriseerd uitvoeren (van de eerdergenoemde "administratieve taken")
- iets anders?
Gewijzigd op 30/06/2015 21:16:52 door Thomas van den Heuvel
Ik wil dat elke klant een eigen pagina heeft voor zijn/haar info te bekijken.
bijvoorbeeld:
website.nl/klanten/klant1/
website.nl/klanten/klant2/
website.nl/klanten/klant3/
elke klant heeft dan dus zijn eigen index.html waar zijn/haar informatie op staat, waar hij op kan inloggen.
deze paginas hebben elk dus hun eigen wachtwoord.
Ik kies hiervoor omdat ik niet met mysql wil werken.
Hebben jullie betere ideeen?
Jasper Schellekens op 30/06/2015 21:10:02:
Bedankt voor je reacties, ik weet voldoende.
Is er een betere manier om zo een pagina te beveiligen?
Is er een betere manier om zo een pagina te beveiligen?
Ik zeg niet dat de manier slecht is, zolang je maar goed orde op zaken stelt en geen gaten in de beveiliging hebt.
Als je echt niet vertrouwt moet je maar een loginsysteem met sessies bouwen, en ja, ook dat is helaas weer te hacken via Cross Site Scripting (XSS). Dus blijf altijd op je hoede en zorg dat je veilig programmeert.
Trouwens, ga je echt serieus voor elke klant een eigen website aanmaken? Het klinkt zeker niet erg handig.
En wat is er mis met MySQL?
Gewijzigd op 30/06/2015 21:23:51 door - Ariën -
Jasper Schellekens op 30/06/2015 21:21:33:
Ik kies hiervoor omdat ik niet met mysql wil werken.
Dat mag, maar dan maak je het jezelf wel verdomd moeilijk? Hoe wil je dit gaan beheren dan?
Jasper Schellekens op 30/06/2015 21:21:33:
Hebben jullie betere ideeen?
Wel iets in de vorm van een database gebruiken zodat je informatie gestructureerd kunt opslaan.
EDIT: kun je niet beter 1 voordeur hebben?
/klanten/login
of zelfs
/klanten
?
Gewijzigd op 30/06/2015 21:28:44 door Thomas van den Heuvel
Er is anders ook MsSQL, PostgreSQL, Filemaker, Oracle etc... ;-)
Ik ben niet de beste met php/mysql, ik heb enkele leden systemen geprobeerd,
De systemen op internet verkrijgbaar functioneerde niet.
Vanalles geprobeerd uiteraard om het werkend te krijgen maar het waren allemaal oude systemen van 10 jaar oud vol met sql injection.
Daarom heb ik ervoor gekozen om het zo te doen, het is stukken makkelijker voor mij, omdat ik html wel heel goed beheers.
Dat je HTML goed beheerst staat er los van, het gaat erom dat je het niet te complex maakt voor je eigen.
kunnen jullie een redelijk ledensysteem aanraden wat ik kan aanpassen?
- klanten kunnen hun eigen contactgegevens waarschijnlijk niet wijzigen als er niets dynamisch aan deze pagina's is
- als je een layoutwijziging doorvoert en je van losse HTML-bestanden gebruik maakt mag je deze wijziging X <aantal klanten> uitvoeren.
De winst die je nu pakt met een eenvoudige oplossing gaat straks mogelijk in (de moeite die je moet steken in) het onderhoud zitten.
Een oplossing moet zo simpel mogelijk zijn, maar niet simpeler.
Jasper Schellekens op 30/06/2015 21:37:42:
kunnen jullie een redelijk ledensysteem aanraden wat ik kan aanpassen?
Inkoppetje: Elke? Als je maar goed checkt of het veilig is.
De ledensystemen die ik kon vinden op sitemasters.be werkten allemaal niet, waren allemaal verouderd
Jasper Schellekens op 30/06/2015 21:43:31:
De ledensystemen die ik kon vinden op sitemasters.be werkten allemaal niet, waren allemaal verouderd
Misschien zal ik die eens wat op gaan schonen :]. Of iig markeren als zijnde verouderd.
Jasper Schellekens op 30/06/2015 21:43:31:
De ledensystemen die ik kon vinden op sitemasters.be werkten allemaal niet, waren allemaal verouderd
Dan pas je het toch aan? Wat je trouwens zoekt is een CRM-systeem om de informatie over je klanten gestructureerd bij te houden, waarbij de klant inzicht heeft in zijn eigen gegevens.
Ik denk niet dat je hierin iets kant en klaars zal vinden. Maar zelf bouwen is natuurlijk een leuke uitdaging.
Het is inderdaad een uitdaging ja :D
Toevoeging op 30/06/2015 22:25:49:
Heeft niemand een leuk werkend membersysteem liggen?
Ik heb ooit eentje gebouwd waarbij je kan kiezen op welke locaties je wilt uitloggen, maar je moet er zelf wel het aan en ander aan verbouwen, denk ik. Het is wel een projectje van 8 jaar geleden, maar met SQL injection preventie.
Toevoeging op 01/07/2015 14:23:50:
- Aar - op 30/06/2015 21:07:22:
De hele website, en als het helemaal tegenvalt de hele server....
Voorbeeld:
En dan zou je het via deze URL de inhoud kunnen ophalen:
http: //vulnerable_host/preview.php?file=topsecret/index
Voorbeeld:
En dan zou je het via deze URL de inhoud kunnen ophalen:
http: //vulnerable_host/preview.php?file=topsecret/index
Hier wou ik nog even op terug komen.
De hele website bestaat uit html en css maar heb wel een contact systeem met php.
Hoe kan dit beter?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
foreach ($_GET as $k => $v) {
if (!is_array($v)) {
$return[ $k ] = clean_value($v);
}
}
//en dan post!
foreach ($_POST as $k => $v) {
if (!is_array($v)) {
$return[ $k ] = clean_value($v);
}
}
return $return;
if (!is_array($v)) {
$return[ $k ] = clean_value($v);
}
}
//en dan post!
foreach ($_POST as $k => $v) {
if (!is_array($v)) {
$return[ $k ] = clean_value($v);
}
}
return $return;