Portál AbcLinuxu, 5. května 2025 16:34

Dotaz: Apache autorizace - zaujímavá úloha

28.1.2009 14:47 Ján Regeš
Apache autorizace - zaujímavá úloha
Přečteno: 314×
Odpovědět | Admin

Zdravim.

Predstavte si, ze mate nejaku kniznicu suborov (bezna databaza suborov, spravovana nejakym redakcnym systemom s tym, ze mozte na rozne subory nastavovat prava roznym uzivatelom, uzivatelskym skupinam, je tam dedenie prav, expiracia prav, atd... vsetky tieto info su ulozene v DB a kvoli zlozitosti je cast autorizacnej logiky v PHP)

Takze o co mi ide ?

V skratke .. ako docielit toho, aby sa pri odoslani bezneho, priameho requestu na nejaky non-executable subor (pdf,txt,doc,xls,...) zavolal napr. aj nejaky CGI skript, ktory by to autorizoval (nestaral sa ale o response-handling, ten by mal ostat plne v rezii Apache)

1. riesenie vlastnym download skriptom (aj ked to navonok vdaka mod_rewrite moze vyzerat dobre) uz je dost zastarale a nepaci sa mi (ak je request na stiahnutie napr. 2GB suboru, je nutne tam riesit postupne nacitanie suboru, aby sa nealokovala pamat, atd.. atd... da sa to zoptimalizovat, ale kvoli tomu nepisem :)

2. skusal som apache output filter s tym, ze ako filter sa zavola CGI PHP skript, ktory na STDIN prijme telo response a na STDOUT vrati data (tam je mozne dostat sa k SIDu, inicializovat session, overit, ci ma prihlaseny uzivatel pravo stiahnut subor a ak nie, tak na STDOUT vyhodim "Access denied"). Problem je ale v tom, ze hlavicky nastavuje Apache, takze ak leti request na PDF a uzivatel nema prava, poslu sa PDF hlavicky ale v tele je "Access denied" (takze sa obvykle otvori napr. Acrobat Reader a vyhlasi chybu). Ucinok 100%, ale efekt mizerny (skusal som aj apache input filter, ale tam som sa nijak nedostal napr. k SIDu, ktory potrebujem pre overenie uzivatela).

3. apache moduly na autentizaciu/autorizaciu vedia overovat voci nejakemu auth-suboru, alebo priamo voci databaze, prip. pravam na filesysteme, ale nenasiel som moznost, ktora by sa hodila - moznost vyvolat nejaky prikaz, ktory by v parametroch dostal napr. hlavicky+telo requestu, ten by si to interne autorizoval a vratil napr. 0/1 podla toho, ci je pristup autorizovany.

Napada vas nejake riesenie mojho problemu ?

Som vdacny za kazdu radu a myslim si, ze nie som sam, kto by uvital riesenie :-)

PS: Apache, PHP, grntoo distro (vsetko v aktualnych verziach)

Dik.

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

28.1.2009 15:03 Messa | skóre: 39 | blog: Messa
Rozbalit Rozbalit vše Re: Apache autorizace - zaujímavá úloha
Odpovědět | | Sbalit | Link | Blokovat | Admin

Já myslím, že první řešení je nejlepší. Akorát to bude třeba trochu zoptimalizovat :-) - ideálně aby se soubor dalo stahovat např. odprostředka, aby byly relevantní hlavičky času poslední modifikace apod. Výkonostně by to snad nemělo být horší, než kdyby se PHP použilo jen jako autorizer. Proč by tohle řešení mělo být zastaralé?

Nebo mě ještě napadá FastCGI autorizer (nebo jak se tomu říká), ale nevím, jestli PHP dokáže běžet v tomto módu.

28.1.2009 15:18 ag3nTt
Rozbalit Rozbalit vše Re: Apache autorizace - zaujímavá úloha
Odpovědět | | Sbalit | Link | Blokovat | Admin

Zdravim.

Ako som pisal, download file sa mi nepaci a to uz z jedneho prosteho systemoveho dovodu. Nechcem nijak zasahovat do response handlingu, chcem len pred handlingom overit a pripadne obmedzit moznost stiahnutia suboru.

Download file mame celkom sikovny, zvlada "resume support" apod., ale je to z mojho pohladu riesenie typu "systemovejsie sa to vyriesit neda" ..  ale ja viem, ze cesta existuje a zatial sa nenasiel HC borec co by sa v tom povrtal a pomohol mi :-)

 

29.1.2009 01:09 luky
Rozbalit Rozbalit vše Re: Apache autorizace - zaujímavá úloha
Odpovědět | | Sbalit | Link | Blokovat | Admin
1. nejjednodussi reseni bez zbytecneho sahani mimo rozsah webovky. 2. muzete nastavovat hlavicky dle libosti. 3. prilis narocne.
29.1.2009 01:13 luky
Rozbalit Rozbalit vše Re: Apache autorizace - zaujímavá úloha

ad 2. jestli jste myslel mod_filter, tak tam nevim, jestli to jde.
ad 3. myslena narocnost na systemove zdroje.
 

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.