HTaccess en leestekens in gebruikersnaam

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

E Ander

E Ander

09/11/2020 11:29:21
Quote Anchor link
Hallo,
Ik wil een map beveiligen met htaccess. Nu heeft één van de gebruikers een naam waar leestekens voor gebruikt wordt. Om in te kunnen loggen heb ik een ë nodig. Dat wordt niet standaard geaccepteerd door htaccess. (bij mij niet)
Nu kan ik de gebruiker natuurlijk een andere gebruikersnaam opleggen maar dat vind ik een slecht idee. Blijven er 2 mogelijkheden over, kijken of ik naam en wachtwoord via php in htaccess kan invoeren (hulp a.u.b.) of uitvinden hoe ik het voor elkaar kan krijgen dat de ë in de gebruikersnaam wordt omgezet in een e (achter de schermen) bij htaccess.

Als iemand een oplossing weet, help me a.u.b.

m.v.g.
Peter
 
PHP hulp

PHP hulp

22/11/2024 13:14:56
 
- Ariën  -
Beheerder

- Ariën -

09/11/2020 11:42:57
Quote Anchor link
Als ik een snelle blik neem in de RFC van HTTP Authorization heb ik mijn twijfels of het inderdaad kan.
 
Adoptive Solution

Adoptive Solution

09/11/2020 12:20:49
Quote Anchor link
Geen enkel probleem.

Beide zijn ëndüser

ëndüser:$2y$10$nZTl7QatBc49tcmzNPPj.urIhYKrgoiubgod2SCqXzLBXPLN3AdJ.

https://hostingcanada.org/htpasswd-generator/

Gebruik Bcrypt in Mode menu
 
E Ander

E Ander

14/11/2020 21:33:31
Quote Anchor link
Arien en adoptive Solution,bedankt voor jullie antwoord. Ik ga het binnenkort uitproberen. Ik verwacht echter geen mode menu. Dus moet ik uitvinden hoe dat werkt.
Groet
 
Thomas van den Heuvel

Thomas van den Heuvel

14/11/2020 21:53:52
Quote Anchor link
Als je de beschikking hebt over een scriptingtaal en/of database zou je deze functionaliteit hier ook in kunnen trekken en zou je een kleine beheerapplicatie kunnen schrijven zodat je niet hoeft lopen te pielen met speciale tekens in een tekstbestand.
 
E Ander

E Ander

15/11/2020 09:02:15
Quote Anchor link
Thomas, bedankt voor je reactie. Ik ben bezig met php en mysql. Ik heb geen idee hoe ik met php, htacces kan vullen.
Groet.
 
Jan R

Jan R

15/11/2020 09:16:37
Quote Anchor link
Ook zonder database moet het kunnen
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
    $extraLogins
= array(
        array(
            'pw'=>'***',
            'contacts'=>array(
                '[email protected]',
                '0123456789'
            ),
            'naam'=>'Paul',
            'id'=>-1,
            'rollen'=>array(VIERHOEK)
        ),

        array(
            'pw'=>'guest',
            'contacts'=>array(
                '[email protected]'
            ),
            'naam'=>'guest',
            'id'=>-2,
            'rollen'=>array(TOERNOOIEN)
        )
    );

//kleine controle of de id's goed zijn.
    foreach($extraLogins as $login) {
        if(!isset($login['id'], $login['naam'], $login['pw'], $login['contacts'], $login['rollen']) || $login['id']>=0 && is_array($login['contacts']) && is_array($login['rollen'])) {
            die('<h1>Er zijn fouten in de extra logins</h1>');
        }
    }

    
    $bfound=false;
    foreach($extraLogins as $login) {
        if($login['pw']==$_POST['pw'] && in_array($_POST['name'], $login['contacts'])) {
            if(in_array(functiecode(), $login['rollen'])) {
                $_SESSION['id'] = $login['id'];
                $_SESSION['naam'] = $login['naam'];
                $_SESSION['email'] = $login['contacts'];
                $_SESSION['rollen'] = $login['rollen'];
                $_SESSION['check'] = md5(date('d-m-Y'));
                header('location:logedin.php');
                exit;
            }
        }
    }

?>


Zo doe ik het voor werken zonder database of zelfs gedeeltelijk db en deel zonder. De rollen zijn waar mag men wel of niet inloggen.

Jan
 
- Ariën  -
Beheerder

- Ariën -

15/11/2020 09:23:45
Quote Anchor link
Rollen zou ik niet in een sessie opslaan.
Als je die voor iemand aan past dan moet diegene eerst zijn sessie trashen. Ook de naam en mailadres hebben geen meerwaarde in een sessie. Die kan je prima uit de database halen.

Verder kan je ook session_regenerate_id() toepassen na het inloggen. Dat voorkomt dat iemand van te voren je sessieID al op slinkse wijze kan stelen (session fixation) en past de SessieID aan.

Verder kan je zo'n inlog ook gebruik laten maken van HTTP Authenticatie om hetzelfde gevoel te krijgen als eerst.

https://www.php.net/manual/en/features.http-auth.php
Gewijzigd op 15/11/2020 09:25:55 door - Ariën -
 
Thomas van den Heuvel

Thomas van den Heuvel

15/11/2020 13:17:21
Quote Anchor link
- Ariën - op 15/11/2020 09:23:45:
op slinkse wijze kan stelen (session fixation)

Ik denk dat je session hijacking bedoelt, wat mogelijk (mede) in staat gesteld wordt door session fixation?
Gewijzigd op 16/11/2020 16:58:32 door Thomas van den Heuvel
 
E Ander

E Ander

16/11/2020 10:39:05
Quote Anchor link
Jan R,Ari"en enThomas, jullie hebben me weer op pad geholpen. Ik ga dit zo ff uitproberen.
Alvast bedankt. Ik laat nog weten of het me gelukt is.
 
E Ander

E Ander

18/11/2020 17:23:20
Quote Anchor link
Jan R, als ik voor Renë in de met HTaccess beveiligde map administratie een account aanmaak met Rene ww 'ietsdergelijks' dan zou het theoretisch alleen de ë in Renë moeten omzetten in een e. Daarna moet ik inloggen in HTacces en de map administratie.

Jouw verhaal lijkt me een andere manier van een map beveiligen met PHP. Wellicht beter maar voor mij op dit moment lastig omdat ik dan veel tekst moet wijzigen in bestaande scripts.

Ik zoek nu dus een mogelijkheid om met php in te loggen bij HTacces.
 
- Ariën  -
Beheerder

- Ariën -

18/11/2020 19:07:08
Quote Anchor link
.htaccess heeft niks met PHP te maken.
Maar de bekende inlog-vensters zijn gewoon een onderdeel van de webservers. Zie mijn post hierboven.
 
Thomas van den Heuvel

Thomas van den Heuvel

18/11/2020 22:21:30
Quote Anchor link
Je zou het .htaccess bestand mogelijk zelfs (inhoudelijk) kunnen beheren via PHP, maar als je dat dan toch aan het doen bent kun je net zo goed een database gebruiken.
 
E Ander

E Ander

11/12/2020 14:58:35
Quote Anchor link
Thomas, Ariën en Jan. Ik ben met jullie uitleg en dat van Googel nu een tijdje aan het stoeien maar ik blijf er tegen op lopen dat een map met HTacces om een gebruikersnaam en wachtwoord blijft vragen, ook al geef ik dat op diverse manieren mee met POST en Get. Jan R mijn kennis is niet voldoende om jouw voorbeeld werkend te krijgen.
Stel ik heb een gebruiker Piet met wachtwoord ikbenSl1m. Dat wachtwoord is versleuteld maar Piet moet dus ikbenSl1m invoeren. Nu heeft Piet zich aangemeld en wil ik Piet toestemming geven in de met HTacces beveiligde map poenbeheer. Op dit moment krijg ik het dus niet voor elkaar dat Piet niet nog een keer zijn naam en wachtwoord moet invoeren.
Piet heet in het echt Piët maar logt dan in als Piet zonder dat Piët dat merkt.
Mijn probleem is dan dat inlog vraag venster bij HTacces. Daar wil ik vooraf gegevens naar toe sturen zodat er zonder extra inloggen, gewerkt kan worden in poenbeheer.
 
- Ariën  -
Beheerder

- Ariën -

11/12/2020 15:05:31
Quote Anchor link
.htaccess is wel een leuke beveiliging, maar het nadeel is dat het lastig te onderhouden is.
Je moet dus bij het wijzigen van een wachtwoord een hoop toeren uithalen om dit te bewerkstelligen. Ook de gebruiker wil erg graag deze mogelijkheid hebben. Ook het uitloggen is niet eenvoudiger te doen dan enkel de browser af te sluiten.

Met welke reden gebruik je .htaccess, en geen normaal inlogscript in PHP & MySQL?
 
E Ander

E Ander

11/12/2020 15:09:44
Quote Anchor link
Ariën, onbekenheid met die beveiliging en mijn ervaring met HTacces. Ik ga het nu met jouw advies proberen met de kennis van http://www.sitemasters.be/tutorials/1/1/99/PHP/Maak_een_login_script. Kijken of ik daarmee kan doen wat ik zoek.
Bedankt voor het meedenken.
 
- Ariën  -
Beheerder

- Ariën -

11/12/2020 15:29:43
Quote Anchor link
Ik raad om om in ieder geval GEEN MD5 meer te gebruiken als hash van een wachtwoord. Verder vind ik het ook al zeer zorgelijk dat die in die tutorial gebruikt wordt in een cookie. De beste oplossing om een password te hashen is: password_hash(), en password_verify() in PHP om deze te controleren.

Het enige wat een cookie moet bevatten is een UserID en een SessieHash die niet afleidbaar is van een wachtwoord, ook al is deze gehashed.
Gewijzigd op 11/12/2020 15:30:51 door - Ariën -
 



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.