$_POST gegeven opslaan in bestand

Status
Niet open voor verdere reacties.

falcojugger

Gebruiker
Lid geworden
29 dec 2008
Berichten
279
Hallo allemaal,

Het is dus zo dat ik een beveiliging op mijn site wil door middel van .htaccess en .htpasswd

Nou is het onhandig als ik degene ben die .htpasswd (het bestand met de gebruikersnamen) de hele tijd moet gaan bijwerken.

Mijn vraag:
Is het mogelijk om de gegevens die verstuurd worden bij een form door middel van post,
automatisch op te slaan in deze file.

Om even heel stom aan te geven, op deze manier moeten gegevens in de .htpasswd file komen

$_POST["username"] : $_POST["md5hash(password)"]

BIJ VOORBAAT DANK! :)
 
Waarom beveilig je je site dan niet door middel van PHP :rolleyes:

Als je dan toch PHP wilt gaan gebruiken kun je net zo goed met sessies of cookies gaan werken.
 
Ik geloof niet dat het mogelijk is om naar .htpasswd te schrijven, maar je zou het volgende kunnen proberen.

PHP:
$f = fopen('.htaccess', 'a');
fwrite($f, $_POST['username'] . ':' . md5($_POST['password']));
fclose($f);
 
Ik betwijfel alleen of de encryptie in .htpasswd wel md5 is ?
 
ja ik wist dat het wel mogelijk was qua MD5-hash betreft.

De reden waarom ik dit wilde proberen is omdat er zoveel gebreken zijn met betrekking tot loginscripts is PHP. sowieso moet je geen gebruik maken van cookies bij loginscripts, ook moet je alert zijn op SQL injection. Dit is bij .htaccess allemaal niet mogelijk...

De enige manier om htaccess te kraken, nouja ik weet eigenlijk geen manier :thumb:
stel dat ze in de htpasswd file komen, hebben ze nog steeds alleen de hash.

EDIT:

Erik, ik zal het zo snel mogelijk uitproberen, zodra ik kan, bedankt :)
 
Laatst bewerkt:
sowieso moet je geen gebruik maken van cookies bij loginscripts, ook moet je alert zijn op SQL injection.

Ah, vandaar dat de halve wereld gebruik maakt van cookies :rolleyes:
SQL injection kun je gewoon voorkomen door je script goed te beveiligen.
 
Qua SQL heb je gelijk, dit valt te beveiligen, maar tot ik weet hoe het moet dacht ik eerst wel "even" .htaccess te gebruiken.

Qua cookies moet ik je echter ongelijk geven, dit is één van de minst veilige dingen die er is. Mocht de halve wereld gebruik maken van cookies dan is de halve wereld niet goed beveiligd.
 
De 'onveiligheid' van een cookie ligt bij het feit dat het 'gewone tekst' is die door, laten we realistisch zijn, zo goed als iedereen kan uitgelezen worden.
De effectiviteit van een 'veilig' cookie zit hem dus in enerzijds wat je erin steekt, en anderzijds hoe je het erin steekt. En er bestaan heus wel goede encryptiealgoritmes genoeg om in 98% van de gevallen over _veilige_ cookies te mogen spreken.
 
goed, de gegeven code in een van de eerste reacties zal ik eens gaan testen.

echter ik heb nog even een deelvraag, voordat dit een discussie word over cookies,sessies of htaccess,

bij een localhost (site bekijken via UsbWebserver), wat is daarbij het absolute pad?
ik krijg het niet voor elkaar om mijn passwordfile goed te lokaliseren.
 
Om zelf maar te antwoorden op mijn laatste vraag: het is wel mogelijk, maar UsbWebserver heeft een aparte map: apache. Wanneer deze naar de .htpasswd file gaat zoeken, zoekt hij automatisch eerst in de apache map, vraag me alleen niet waarom ;)

PHP:
$f = fopen('.htaccess', 'a'); 
fwrite($f, $_POST['username'] . ':' . md5($_POST['password'])); 
fclose($f);

Om terug te komen op deze code. hij is perfect betreft het feit dat hij schrijft.
Heb hem een beetje aangepast want elke gebruiker moet op een nieuwe regel komen in het bestand maar goed.

één ding zit me nog niet lekker: md5($_POST['password'])
PHP gebruikt andere md5 algoritme dan dat Apache doet

hoe zet ik een normaal password ($_POST['password']) om in een APACHE MD5
 
sorry Erik, ik weet niet zo goed wat ik daarmee aanmoet.
het gaat er dus om dat ik via een php pagina de fwrite functie gebruik zodat er een username en password geschreven word naar het bestand .htpasswd. als php encrypt via md5 is dat een andere uitkomst dan die van apache, mijn vraag is hoe ik het wachtwoord dan in het bestand krijg en dat hij dan encrypt OF een andere functie gebruiken zodat hij in apache encrypt.
 
Je moet class.Htpasswd.php3 ergens opslaan.

Vervolgens in de file waar je een password wilt converteren doe je:

PHP:
<?php
include('pad/naar/class.Htpasswd.php3');
$htpass = new Htpasswd();
$encPass = $htpass->cryptPass('Jewachtwoord');
?>

Er zit trouwens een heel user-management in die zip-file meen ik. Het kan trouwens zo zijn dat je in de class.Htpasswd.php3 bovenaan <? in <?php moet veranderen afhankelijk van de instelling van je server (maar ik zou het sowieso doen).
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan