Autor | Zpráva | ||
---|---|---|---|
pajadvorak Profil |
#1 · Zasláno: 13. 1. 2018, 09:11:21
Proč nefunguje omezení přístupu do soubor.php pouze pro uživatele paVel, ale je to zpřístupněno každému, kdo je přihlášen? Dřív mi to fungovalo a po přesunu na nový hosting ne. Není mi jasné v čem je chyba. Díky za každou radu.
AuthUserFile /cesta/.htpasswd AuthName "Password Protected Area" AuthType Basic require valid-user <Files soubor.php> ##soubor je zpřístupněn pouze uživateli paVel AuthName "Password Protected Area" AuthType Basic AuthUserFile /cesta/.htpasswd require user paVel </Files> |
||
Keeehi Profil |
#2 · Zasláno: 13. 1. 2018, 17:27:45
Není náhodou ten starý hosting na Apache serveru verze 2.4 a ten nový na verzi 2.2?
|
||
pajadvorak Profil |
#3 · Zasláno: 14. 1. 2018, 10:02:33
Keeehi:
Z hostingu mi psali, že se jedná o verzi 2.4 (nový). |
||
pajadvorak Profil |
SetEnvIf %{SERVER_PORT} ^80$ IS_NON_SSL RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} AuthUserFile /cesta/.htpasswd AuthName "Password Protected Area" AuthType Basic require valid-user <Files mezisoucet.php> ##soubor zaheslován pro uživatele AuthType Basic AuthName "Password Protected Area" AuthUserFile /cesta/.htpasswd Require user uzivatel </Files> Tak celý problém je v této podmínce - <If "%{HTTPS} == 'on'">. Když tam není, <Files> funguje. Když ji tam nechám, abych docílit, že se to nejdříve přesměruje na HTTPS a pak teprve to chce heslo, tak <Files> přestává fungovat. Víte někdo co s tím? |
||
Kajman Profil |
#5 · Zasláno: 14. 1. 2018, 12:25:30
Možná něco takového
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [NE,L] AuthUserFile /cesta/.htpasswd AuthName "Password Protected Area" AuthType Basic <RequireAny> Require expr %{HTTPS} != 'on' Require valid-user </RequireAny> <Files "mezisoucet.php"> AuthUserFile /cesta/.htpasswd AuthName "Password Protected Area" AuthType Basic <RequireAny> Require expr %{HTTPS} != 'on' <RequireAll> Require valid-user Require user uzivatel </RequireAll> </RequireAny> </Files> |
||
pajadvorak Profil |
#6 · Zasláno: 14. 1. 2018, 14:30:41
Kajman:
Perfektní. :-) Vše funguje přesně tak, jak má. Moc děkuji. |
||
Časová prodleva: 24 dní
|
|||
pajadvorak Profil |
#7 · Zasláno: 7. 2. 2018, 08:26:09
Kajman:
Narazil jsem ještě na jeden problém, na který nemohu nalézt odpověď. Potřebuji ještě výše uvedený kód rozšířit a to takovým způsobem, aby pouze při přihlášení došlo k přesměrování například na index.php. Stává se totiž, že se uživatel prohlížeč zavře a neskončí svou práci na základní stránce (index.php). Pak po přihlášení obnovou původní stránky dochází ke spuštění scriptů, ke kterým by normálně nedošlo. Děkuji. |
||
Kajman Profil |
#8 · Zasláno: 7. 2. 2018, 09:12:09
A není stejný problém v tom, když uživatel obnoví stránku, že se spouští něco, co se už spouštět nemělo?
To si spíše v php udělejte systém kontrolních tokenů. Starší článek např. tady Moved Permanently |
||
pajadvorak Profil |
#9 · Zasláno: 7. 2. 2018, 20:38:10
Kajman:
Děkuji, ale to bohužel neřeší náš problém. Například by nám to znemožnilo pracovat s aplikací v dalším okně, jak autor uvádí na své stránce. Mně jde jen o to přesměrování. Jde to provést přes htaccess? |
||
Keeehi Profil |
„Pak po přihlášení obnovou původní stránky dochází ke spuštění scriptů, ke kterým by normálně nedošlo.“
U správně navržené aplikace k takovým jevům nedochází. Akce se vykonávají na POST požadavek a po dokončení se přesměrovává. To zajistí, že při obnovení stránky se akce nevykoná znovu (obnoví se stránka na kterou se přesměrovalo a ne ten původní POST požadavek, takže se akce nevykoná). No a po přihlášení se taky nic nemůže stát, když z přihlašovací stránky nějak přesměrujete. Základem je tedy spouštět akce jen na POST požadavek, jelikož na ten nemůže pouhým přesměrováním, nebo přejitím na odkaz vzniknout. Pro výpisy, které nic nemění jsou vhodné GET požadavky, aby se na ně dalo odkazovat. |
||
Časová prodleva: 6 let
|
0