Autor Zpráva
Chiron
Profil
Zdravím a prosím o radu.

Mám webovku, kde je v zanořeném adresáři úsek, který chci mít přístupný pro omezený počet lidí, kteří znají přístupové heslo. Tuto věc jsem už realizoval; pomocí kryptovacího skriptu, který po zalogování generuje výsledný název souboru, který teprv pošle přihlášeného dovnitř, se tam mohou dostat jen oni. Ale zde je ten problém: jakmile tam jsou, stačí jim jen si tu stránku uložit do záložek, a pak se už mohou dostat dovnitř i bez hesla. Navíc proužek s url jim naservíruje celou cestu dovnitř. Jak nahoře, v hlavní liště a url, tak i při najetí myši na nějaký odkaz uvnitř - jeho celá url se zobrazí dole u lišty. Kdokoliv jiný, kdo počítač použije se tam po najetí záložek dostane také.

Existuje nějaká možnost, jak skrýt před návštěvníkem vše, od druhé vrstvy, tedy například v proužku url bude jen www.stranka.cz bez zbytku celé tasemnice? Takže i pokud si to dá do záložek, dostane se jen na první úroveň. A to samé skrýt, i pokud si tu stránku stáhne jako html verzi - v hlavičce je většinou tag "saved from..."? A samozřejmě zobrazení celé tasemnice po najetí na odkaz.

Prostě jen přes heslo. Určitě to nějak jde. Zatím jsem na webu nic k tomu nenašel. Moje úroveň je html a css. Občas si přizpůsobím i nějaké skripty z DynamicDrive. Díky předem za návrhy a odkazy. B. L.
Beavis
Profil
Chiron:
Generovat dynamicky název souboru není ideální, nestačilo by v dané části webu vyžadovat např. http auth?
<?php

if (empty($_SERVER['PHP_AUTH_USER']) ||
     $_SERVER['PHP_AUTH_USER'] != "login" ||
     $_SERVER['PHP_AUTH_PW'] != "pass") {
    header('WWW-Authenticate: Basic realm="My Realm"');
    header('HTTP/1.0 401 Unauthorized');
    echo 'Please enter valid credentials';
    exit;
}
Když takovou stránku uložíš do záložek / někomu pošleš odkaz, dokud se nepřihlásí se správnými údaji, tak si obsah nezobrazí.
Keeehi
Profil
Chiron:
URL je vždy celá viditelná a nedá se skrývat jak by sis přál. Dokonce pokud je stránka na http a ty jsi připojen třeba v restauraci na jejich wifi bez hesla tak se k té adrese mohou dostat všichni v blízkém okolí, dále všechny routery a jiné síťové prvky mezi tebou a serverem. Prostě url není vůbec vhodná na přenášení citlivých informací.

Přihlašování můžeš udělat tak jak radí Beavis pomocí http auth nebo druhá možnost je využít session. Můžeš vyjít třeba z gist.github.com/JanTvrdik/8d813cfc7a4a8e0db2c7. To je verze která pro uložení účtů využívá databázi. Dá se to ale celkem jednoduše předělat aby se ty informace braly z jiného zdroje.
Chiron
Profil
Diky vsem za rady. Zkusim se tim prokousat. CHI
ondrabus
Profil
Jen pozor, že u http auth je potřeba používat https, jinak jsou přihlašovací údaje posílány po síti v plain textu.
Keeehi
Profil
ondrabus:
To jsou i když použiješ session s formulářem a nepoužiješ https. Když se použije HTTP a ne HTTPS tak veškerá komunikace je nešifrovaná.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0