Povolení přístup některých uživatelů pouze z některých počítačů

Vytvářím pro naši firmu relativně jednoduchou webovou aplikaci v php a narazil jsem na malý problém: Vše bude umístěno veřejně na internetu, každý uživatel se bude přihlašovat pod svým účtem a bude moci vždy pracovat pouze s tím, k čemu má povolený přístup. Ale teď bych potřeboval, aby někteří uživatelé (majitel, správci jednotlivých částí, ...) mohli k aplikaci přistupovat opravdu odkudkoliv, zatímco jiní (účetní, lidé v kanceláři, ...) pouze z práce - tzn. z konkrétních počítačů. Existuje nějaký způsob, jak by mohl skript otestovat, zda jde o "povolený" počítač? Testováním IP to řešit nejde, je potřeba povolit přístup i ze vzdálených pracovišť s neveřejnou ip... Máte někdo nápad jak na to? Co vlastně testovat?
Sice nechápu, proč třeba účetní nemůže pracovat z jiného počítače - v době uzávěrky ji klekne motherboard a ona se nebude moci odnikud jinud přihlásit. To pak bývají účetní dost nerudné. ;-)

Bohužel tě zklamu, protože v PHP neexistuje 100% řešení identifikace PC. Můžeš se pokusit o komplikované kombinace IP, cookies, prohlížeče, OS apod., ale 100% nedosáhneš. Každá z těchto možností lze obejít.

http://forum.builder.cz/read.php?20,210945,211060
http://forum.builder.cz/read.php?20,199532,199593
Jj na 100% to vážně nejde napadá mě jen pár možností, vesměs to samé co psal zbi .. ale.. proč je vlastně tak důležité aby se šlo nalogovat jen z firmy ?
no, taky by jsi mohl na daných pracovištich nějak poupravit identifikaci Browserů - třeba ve FF s User Agent Switcher rozšířením to jde skvěle.
A nebo by šlo to že by zaměstanci mohli přistupovat jenom v pracovních hodinách
Mike: heh, no zajímavé, ale furt by pak mohli "pracovat" třeba z domova nebo od rybníka, což je asi v tomto případě nežádoucí :) A časově omezovat pracovníka je taky čudné, co když něco nestihne dodělat včas a pak už to neuloží, protože mu to systém odmítne?
No nevím jestli neřeknu nějakou hloupost (přece jen je pátek odpoledne a já mám už poněkud "unavený" mozek a mohla jsem to špatně pochopit). A co třeba mít u uživatele v db napsaný, jestli potřebuje pracovní IP nebo ne, a pokud ano, tak v jakém rozsahu (popř. jednu konkrétní). Pokud ji nepotřebuje, tak přihlásit, pokud ji potřebuje, tak ji zjistit, jakou má IP a podle toho ho přihlásit nebo ne.
Asi bych už měla jít dom co? :-)
Thalia: s veřejnými IP by to takto šlo. Jenže spousta počítačů se připojuje přes neveřejné IP (proxy servery). V těchto případech nezjistíš IP počítače, ale IP proxy serveru, za nímž mohou být stovky počítačů.
zbi: aha oni v práci vlastně budou za proxy. Ale to by přeci nemuselo vadit. Tedy pokud nechce povolit člověku přístup jen na určitém pc. Já myslela jako že to chce celkově z práce z jakéhokoliv počítače.
Thalia: mrkni na úvodní příspevěk: "ze vzdálených pracovišť s neveřejnou ip"
Jakože i tihle uživatelé - "zatímco jiní (účetní, lidé v kanceláři, ...)" - budou přistupovat ze vzálených pracovišť?
Nevím, nejsem zadavatel úlohy. Toto jsou výňatky ze zadání:
"Vše bude umístěno veřejně na internetu"
"Testováním IP to řešit nejde, je potřeba povolit přístup i ze vzdálených pracovišť s neveřejnou ip"

Logicky vyplývá (ale nechci to s jistotou tvrdit), že i účetní, která má být omezena jen na počítač v kanceláři, může přistupovat z nevřejné IP. Tím pádem rozlišováni podle IP neřeší tento problém.
Ono nejde o to, aby účetní nemohla pracovat z domova, ale spíš o to, aby třeba u aplikace Docházka se člověk nemohl odepsat z domova, kde už 4 hodiny leží na gauči...

Nechci nic komplikovaného, takže vzdálená pracoviště s neveřejnou ip či počítače přistupující z hlavní firemní sítě za NATem, firewallem atd. jsou prostě věci, proč kontrolu ip adres použít nejde...

Ale napadlo mne něco úplně jednoduchého a z hlediska používání úřetními či dalšími lidmi z kanceláře "neodhalitelného" - na "povolených" počítačích by stačilo mít nějaký speciální (třeba systémově se tvářící) soubor a testovat jeho přítomnost / nepřítomnost nebo z něj v případě existence navíc něco načítat, čímž by šli vytvořit "povolené zóny" různé úrovně... No jo, jenže jak z webu přistupovat na soubory na daném počítači?
to by IMHO neslo... pokud mas na serveru/proxyne Win/*NIX (zarucene mas jedno z toho) tak tam hod Apache, PHP, nakonfiguruj(muzes i mysql) a jednotlivejm kompum prirad IP, nebo jak sou nazvany v siti, tak by to tay tak mohlo jit(trebas s101, s504 atd), ale tim jsi nejsem jistej, ale jinak pers IP jo
Takto by to možná šlo přes cookies. Samotný cookie soubor (textový soubor) bys na lokálním PC vytvořil a dal mu taková práva, aby ho uživatel nemohl smazat. Nezkoušeno, jen nápad!
ono si pak staci akorat vypnout cookies, a uz je prohlizec neodesle:-/.
Jak jsem psal, malej pripis:
IMHO by to melo bejt na proxyne, bo server uz nevidi jednotlivce za proxynou
OndraSter je mimo mísu, bez urážky...

No, jak už jsem psal, co tak nadefinovat nějaké speciální User_Agent řetězce těm browserům? Myslíš, že BFU by si toho všimli? kdyby se identifikoval například namísto

Mozilla/5.0 (Windows; U; Windows NT 5.0; cs-CZ; rv:1.7.10) Gecko/20050717 Firefox/1.0.6

třeba

Mozilla/5.0 (Windows; U; Windows NT 5.0; cs-CZ; rv:1.7.10) Gecko/20050717 Firefox/1.0.6 x5y

v tom řetězci na konci by sis určil přesně který je to počítač, případně jen skupinu počítačů se stejnou úrovní "zabezpečení"...
J-R:
nooo, asi jo, ale pokud to bude mit na jeho proxyne, tak to ma rychly, ma jistotu, ze mu to nikdo nesmaze atd..
Džej Ár:
Když se to tak vezme, tak myšlenka s hlavičkou browseru není špatný nápad, mám tedy pár otázek:
1) U kterých všech internetových prohlížečů lze tuhle hlavičku měnit?
2) Jak na to?
3) Jakou funkcí pak tuhle hlavičku budu v kódu testovat / jak k ní přistupovat?


PS: To vážně neexistuje způsob, jak z php skriptu umístěného kdesi na serveru přistoupit k obyčejnému souboru na harddisku dotyčného uživatele? Třeba i v kombinaci s něčím jiným - JavaScript by mohl ten soubor otestovat a data pak nějak předat php na serveru...
OndraSter: Uživatel nemá důvod vypínat cookies. Vypneš cookies = nepřihlásíš se!

Kromě toho si představ, že se připojuješ třeba přes nějakého providera (máš pobočku v jiném městě), který tam má kromě tvých 20 PC další tisíc uživatelů. Myslíš, že tě pustí na proxinu si tam něco instalovat?

Džej Ár: To zná zajímavě. Akorát to řešení je třeba utajit, aby si doma ty prohlížeče neupravili též. :-)
no, ona velka(ale i mensi) firma bude mit urcite alespon jednu svoji proxynu ze...
OndraSter: co ti bránilo si přečíst to, co Petr píše ? Hned bys věděl, že to nepůjde.

Petr: No co já vím, tak nejlépe jde hlavička upravovat pof Mozillou FF s rozšířením User Agent Switcher, tam by mělo jít nadefinovat úplně cokoliv, třeba Mujbrowser/5.6
jinak v ostatních prohlížečích to bude záludnější, v Opeře by to mohlo jít poměnit v konfiguračních souborech a pro IE možná v registrech... Pro Konqueror to jde taky celkem dobře měnit... wget jde taky maskovat za cokoliv...

no, jinak přistupuje se k tomu jako $_SERVER['USER_AGENT']
Ok, díky, zkusím se na to vrhnout...
No, už z úvodu bych řekl, že to moc jednoduchá aplikace nebude...
Ale to DA řešení se mi zamlouvá nejvíc...
Umí IE změnit identifikaci?
A FF?
Tak ve FF to jde. Ve win v adresáři
Mozilla Firefox\defaults\pref\firefox.js
hledejte useragent, tam se to pomění a po restartu FF se hlásí podle požadavků...