🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.www.server-side
Article #61531

Re: problem z logowaniem mimo poprawnego pliku .htpass

#61531
From: PawelS pawel(at)wbcd(dot)pl
Date: Thu, 30 Apr 2020 17:30
88 lines
4058 bytes
RM pisze:
> Mam prawdopodobnie problem z plikiem .htpass utworzonym przez program 
> htpasswd.
> 
> Użytkownik Robert może się zalogować z hasłem hasło_Roberta, a 
> użytkownik Adam z hasłem hasło_Adama nie.
> 
> Tzn. mam:
> 
> $ head ~robert/public_html/.htaccess
> #v+
> AuthUserFile "/home/robert/resources/.htpass"
> AuthName "Strony zabezpieczone"
> AuthType Basic
> require valid-user
> 
> $ cat ~robert/resources/.htpass
> Adam:$apr1$SBuOrH52$npHXYtgKVDJMaq6vR3PKT1
> Robert:$apr1$bBUEgXpC$oqJ05771CIL3VXhPDz8nK.
> 
> $ htpasswd -v ~robert/resources/.htpass Robert
> Enter password:hasło_Robeta
> Password for user Robert correct.
> 
> $ htpasswd -v ~robert/resources/.htpass Adam
> Enter password: hasło_Adama
> Password for user Adam correct.

Ta opcja "-v" ma zweryfikować hasło ?

> $ ls -la ~robert/resources/.htpass
> -rw-rw-r-- 1 robert www-data 176 kwi 29 22:25 .htpass
> 
> $ cat ~robert/public_html/strona.php
> 
> ...
> 
> function authenticate() {
>     if (!isset($_SERVER['PHP_AUTH_PW'])) {
>         // wyświetl okienko:
>         header('HTTP/1.0 401 Authorization Required');
>         header("WWW-Authenticate: Basic realm=Logowanie do systemu");
>         exit;
>     }
>     $currentAdmin = ... // wpisany login, 'Adam' albo 'Robert'
>     $users =array('Adam', 'Robert');
>     $passwords = array('hasło_Adama', 'hasło_Roberta');
>     if (!isset($_SERVER['PHP_AUTH_PW']) ||
>         $passwords[array_search($currentAdmin, $users)] != 
> $_SERVER['PHP_AUTH_PW'] ||
>         !in_array($currentAdmin, $users)) { // złe hasło
>         header("WWW-Authenticate: Basic realm=Logowanie do systemu");
>         header("HTTP/1.0 401 Unauthorized");
>         echo '*** Niepowodzenie logowania ***';
>         return FALSE;
>     } else { // dobre hasło
> 
> ...
> 
>     }
>     return TRUE; // zalogowany
> }

Jeśli dobrze rozumiem powyższy kod, to sam sprawdzasz poprawność hasła ?
To może problemem jest ta linia:
> $currentAdmin = ... // wpisany login, 'Adam' albo 'Robert'
Tu powyżej masz wpisany tylko jeden login,
a próbujesz zalogować się dwa razy,
używając jednego a potem drugiego loginu.

Tutaj poniżej też widzę nie poprawną konstrukcję
> $users =array('Adam', 'Robert');
> $passwords = array('hasło_Adama', 'hasło_Roberta');
To bardzo niebezpieczny zapis, kiedy indeksy przestaną być zbieżne,
hasła będą przypisane do innych loginów.
Nie lepiej zapisać to tak: ?
$USERPASS =array('Adam'=>'hasło_Adama', 'Robert'=>'hasło_Roberta');

Poza tym naprawdę używasz polskich liter w haśle ?
może gdybyś zamiast 'hasło_Adama' zastosował:
'hasło_Huberta'
'hasło_Roberta'
może problem jest z polskimi literami i kodowanie (tak tylko wymyślam) ?

Przede wszystkim najpierw wyłączył bym własne sprawdzanie hasła.
W pierwszej kolejności sprawdziłbym czy w apache wywołanie
pliku / strony np: index.html działa.
W drugiej kolejności próbowałbym ze skryptem.
Technical Details
Message-ID: <5eab0b5f$0$548$65785112@news.neostrada.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!2.eu.feeder.erje.net!feeder.erje.net!news.uzoreto.com!ecngs!feeder.ecngs.de!border1.nntp.ams1.giganews.com!nntp.giganews.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
References: <r8db9p$28n4t$1@portraits.wsisiz.edu.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!2.eu.feeder.erje.net!feeder.erje.net!news.uzoreto.com!ecngs!feeder.ecngs.de!border1.nntp.ams1.giganews.com!nntp.giganews.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
Date: Thu, 30 Apr 2020 19:30:58 +0200
From: "PawelS pawel(at)wbcd(dot)pl" <fake@email.org>
User-Agent: Thunderbird 2.0.0.18 (X11/20081120)
MIME-Version: 1.0
Newsgroups: pl.comp.www.server-side
Subject: Re: problem z logowaniem mimo poprawnego pliku .htpass
References: <r8db9p$28n4t$1@portraits.wsisiz.edu.pl>
In-Reply-To: <r8db9p$28n4t$1@portraits.wsisiz.edu.pl>
Lines: 88
Message-ID: <5eab0b5f$0$548$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 89.231.96.70
X-Trace: 1588267871 unt-rea-a-02.news.neostrada.pl 548 89.231.96.70:60882
X-Complaints-To: abuse@news.neostrada.pl
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit