Directory beveiligen en inloggen met php vanuit DB

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

N tigerrag

N tigerrag

01/09/2015 15:38:10
Quote Anchor link
Beste allen,

Ik wil graag op een site de directory met foto's beveiligen zodat deze alleen zichtbaar zijn voor leden met een login.
Voorkomen dient te worden dan kwaadwillende de foto's via bv url kunnen opvragen. de foto's zijn niet openbaar.

Nu lukt het beveiligen van de directory wel via htaccess en htpasword is inmiddels gelukt, alleen ben op zoek naar een manier om de beveiligde directory in te kunnen via de login van de gebruiker. Gebruikers zijn bekend in een database met versleutelde wachtwoorden.

Eigenlijk zou ik willen dat een gebruiker die reeds ingelogd is via een sessie, automatisch toegang krijgt tot de beveiligde directory zonder hiervoor opnieuw in te loggen. Nu zou ik het htpassword bestand natuurlijk handmatig kunnen aanpassen, maar gebruikers staan al in een database en kunnen ook zelf hun wachtwoord wijzigen enzo, dus dat is niet handig.

Nu zat ik te denken om in htpassword 1 gebruikersnaam en 1 wachtwoord in te voeren en deze dan via php in de beveiligde pagina van de gebruiker mee te geven in een variabelen. Echter kan dit, en hoe dien ik de directory dan aan te roepen met php (met daarin login en password?

Wie weet hier een oplossing voor?

Alvast hartelijk bedankt weer!
 
PHP hulp

PHP hulp

27/11/2024 09:10:04
 

01/09/2015 15:43:21
Quote Anchor link
Er kan in php een gemakkelijke functie gemaakt worden die bovenaan het script geplaatst wordt.
Hierin kan je bekijken of de inlogde gebruiker wel toegang heeft tot de beveiligde pagina.

Het simpelste voorbeeld is;

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
function VerifyAccess() {
if ($_SESSION['logged_in']) {
return true;
}

return false;
}

?>


Hiermee bekijk je of de gebruiker die op dat moment ingelogt is de sessie "logged_in" bevat.


===

Daarnaast kan je dmv een download.php bestand aangeven welke file je wilt downloaden, aan de hand daarvan kan je een download forceren en anders kets je het verzoek af in php.
Gewijzigd op 01/09/2015 15:46:30 door
 
Ivo P

Ivo P

01/09/2015 15:44:23
Quote Anchor link
Ik heb ooit zo iets gemaakt voor een intranet.
Daarbij haalde ik elk uur uit de database op of er nieuwe users waren en/of nieuwe passwords.
De passwords (die inderdaad ongehasht in de db staan) werden dan met de usernames in het htpasswd bestand geplaatst.

Waarschijnlijk is het eenvoudiger/stabieler als je de map in zijn geheel afsluit
(deny from all in .htaccess)

PHP kan er dan nog steeds in.

met http://php.net/fpassthru kun je dan de files uitgeven naar de ingelogde users

Een rewriterule:

geheimedir/* > toegang.php?fileneme=...

in toegang.php laat je php kijken of de user erin mag.
zo ja: met fpassthru de file afgeven.
zo nee: foutmelding.

check eventueel nog of het een plaatje, pdf, mp3 etc is voor de juiste header.
 

01/09/2015 16:19:56
Quote Anchor link
Als je een betere beveiliging wilt kan je de foto's beter versleutelen. Als je webapp op een remote server draait waar jij niet de root toegang van hebt, dan is de kans groot dat een ander daar gewoon bij kan. Je kunt er ook voor kiezen om de bestanden in een database te zetten, desnoods in een virtueel bestandssysteem. Dan heb je daarin alle vrijheid wat regelen van toegang en versleuteling betreft.

Of simpeler: de foto's buiten de public_html (document root voor de webserver) plaatsen, dat je daar alleen via een script bij kunt, dan ben je er ook.
Gewijzigd op 01/09/2015 16:21:12 door
 
N tigerrag

N tigerrag

01/09/2015 16:20:55
Quote Anchor link
Ik ga met jullie reactie even stoeien zometeen

Wellicht net dat ene duwtje in de rug

Thanks voor de snelle hulp

Toevoeging op 01/09/2015 18:55:05:

An tje op 01/09/2015 16:19:56:
Als je een betere beveiliging wilt kan je de foto's beter versleutelen. Als je webapp op een remote server draait waar jij niet de root toegang van hebt, dan is de kans groot dat een ander daar gewoon bij kan. Je kunt er ook voor kiezen om de bestanden in een database te zetten, desnoods in een virtueel bestandssysteem. Dan heb je daarin alle vrijheid wat regelen van toegang en versleuteling betreft.

Of simpeler: de foto's buiten de public_html (document root voor de webserver) plaatsen, dat je daar alleen via een script bij kunt, dan ben je er ook.


Foto's buiten de public_hmtml plaatsen, had ik ook aan gedacht. Echter hoe dien ik het pad ernaar toe te plaatsen in php?
Gewijzigd op 01/09/2015 18:53:39 door N tigerrag
 



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.