Kontrola pristupa fileu
Eto mene opet :)
Dakle, imam neke formulare koji se proslijeđuju na njihove procesore. Svaki taj procesor na početku ima ovu foru da ga ne može netko otvoriti direktno. PHP kôd:
PHP kôd:
Razmišljao sam možda sa HTTP_REFER, pa ono, ako nema referera, znači da je upisano direkt u URL, jel...al opet, kad ga netko pozove, opet baca error, bilo da je direktno preko URL-a ili ga file poziva... Vjerojatno postoji neko rješenje za to? |
if(!defined('INCLUDE_CHECK')) die('You are not allowed to execute this file directly');
|
Kôd:
if($_SERVER["REQUEST_METHOD"] != 'POST') |
Citat:
Tj. otvori index.php do mjesta includeanja i tamo gdje treba biti menu.php stoji ova die() poruka... |
Citat:
Ali volio bih vidjeti neko naprednije/bolje rješenje :) |
Dodaš u index.php
define("INCLUDE_CHECK", true); a u file (npr. menu.php): if(!defined('INCLUDE_CHECK')) die('You are not allowed to execute this file directly'); |
Whoa, odlično!
Hvala ti ;) EDIT: ovo je još bolje i od onog rješenja sa REQUEST_METHOD, awsm awsm :) |
Da postavim jedno pitanje u sličnom tonu.
Radi se o dozvoli pristupa datotekama na serveru (eng. file permission access/control). Ako sam dobro shvatio postoje dva načina reguliranja (tj. jedan za windows okruženje, drugi za unix/linux). Pošto radim u windowsima, a recimo da hoću da mi stranica bude na linux hostu, prema čemu da se ravnam u toj situaciji, na svoj operativni sistem ili hosting OS? Da li zaštita učinjena na windowsima ujedno vrijedi na linux hostu? Opet, ako se takva zaštita radi kroz php (chmod f-ja), koriste se linux naredbe odrednice 755 i sl. Može malo pojašnjenje cijele te situacije |
Ne znam kako bi to išlo u Windowsu ali pod Linuxom možeš pomoću .htaccess da zabraniš pristup određenim folderima u koje smeštaš zaštićene fajlove. A zatim napišeš PHP skriptu koja će u sebi imati proveru pristupa (može li korisnik da skine ovaj fajl?) i ako je provera prošla, da pročita sadržaj fajla i uradi echo korisniku. Naravno, uz to šalješ i odgovarajuće headere.
|
Citat:
.htaccess je prvi način da regulišeš pristupe fajlovima služi da sve url-ove usmeriš ka index.php Druga stvar ... rekao si da include menu.php u sve stranice... to znači da nemaš MVC organizaciju. Naravno da ti za faks nije ni potrebno ali bi ti znatno olakšalo dalji razvoj projekta. Sam MVC koncept jeste na prvi pogled težak ali ti u kasnijim fazama razvoja aplikacije mnogo, mnogo olakšava život. Savet: batali Windows, pređi na Linux. Tako ćeš vremenom mnogo bolje razumeti celu problematiku. :1002: :1002: :1002: :beer: |
Došlo je do nesporazuma, JovanT je odgovarao vezano uz eclipse-ov problem ;)
Al dobro, vidjet ćemo šta bi se može MVC organizacijom eventualno dobiti, hitnije mi je da riješim projekt, a kasnije ako se zainteresiram više za programiranje - nastojat ću da bude i profesionalnije :) |
Citat:
|
Citat:
Imam PHP kôd:
procesor.php ima na početku odmah ovaj if uvjet, i kad se stisne submit na formularu, procesor kao da ignorira to što je konstanta definirana i baci mi grešku. Ako zakomentiram to, sve radi super, al džaba mi onda define() :) |
Citat:
Ako ti se sviđaju moji saveti, slobodno mi se zahvali klikom. Nema potrebe da me zoveš mister. Na forumu se predstavljam svojim imenom. |
Mister Vidak, vi ste neki doktor ili psiholog? :) Prvo dajete savete kako da nam bude bolje a onda ste odmah provalili da imam problem i već imate rešenje. Svaka čast :)
|
Citat:
Bluesman, tebi nisam ni jedan savet dao. Pitao si me da li imam još neki dobar savet i ja sam ti odgovorio da kažeš koji problem imaš pa ako znam da ti pomognem, reći ću ti kako da se problem reši. Nije li bilo tako? ... iskreno, tvoje postove sa uživanjem čitam tako da je verovatno malo oblasti gde bih ja mogao nekim savetom da ti pomognem. ... 'oćemo dalje na PP? |
Pa ne znam, ako ne umeš da mi pomogneš oko mog problema što ne umem da prećutim pa makar i na lakat progovorio - onda ništa. Svi moji drugi problemi su ušuškani i sakriveni pa nisu toliko očigledni :)
Aj sada bez zezanja, pogledaj svoj "savet" pa kaži koliko je primenjiv ... da ne bih nikoga prozivao upotrebiću sebe kao primer. Eto kažeš i sam da sa i ja naučio ponešto, a taj isti "ja" radi već skoro 20 godina na windows-u, kako objasniti tu kontradiktornost sa tvojim savetom da se "batali windows ako imaš nameru nešto da naučiš"? Razumeš šta hoću da ti kažem? Sada valjda i razumeš zašto moram da prokomentarišem takav savet? |
vidak, problem je u ovome:
ja tražim problem za rješenje sada, ne za ubuduće. Dugoročno, možda bi mi prelazak na linux bio dobra stvar, ali mi sada stvarno nije do ikakvih promjena, nego do toga da završim ovaj projekt. Tvoj savjet da pređem na linux da bih nešto pravo naučio je u konkretnom slučaju koristan == 0 - zato jer u ovom topicu pričam o programiranju i kako izvesti nešto s PHP-om. To ti je kao da čovjeku na autocesti pukne guma i zamoli te za pomoć, a ti mu odgovoriš - majstore, ako ne želiš više imati ovakvih problema, kupi tenk... promijeni čovjeku gumu, a onda mu možeš predložiti tenk :) |
@bluesman & @blackshtef Pogledao sam detaljno postove i našao objašnjenje zašto je za @blackshtef-a moj savet "koristan == 0". User eclipse je postavio pitanje o Unix permisijama nad fajlovima i pristupu fajlovima na različitim sistemima. Moja greška je što sam ukačio da je blackshtef ostavio taj post pa je komentar o prelasku na Unix delom bio u tom smislu.
Smatram da je prelazak sa Win na Lin često težak i zahteva dosta nerava. Dosta stvari oko podešavanja samog sistema ide teže nego na Win pa se samim tim mnogo korisnih stvari brže i detaljnije nauči. To sve utiče na razumevanje logike sistema, t.j. kako sve to funkcioniše a to bi bleckshtef-u pomoglo oko razvoja projekta(moje mišljenje i iskustvo - ne mora se niko složiti sa tim). Smatram i da su MS proizvodi koncipirani da programeru olakšaju život, poboljšaju produktivnost ali ceo taj koncept, od samog začetka DOS-a i ukidanja permisija i root pristupa, koliko god da je ubrzao razvoj IT industrije isto toliko je nevolja doneo. Moje mišljenje je da je najveći nedostatak celog MS koncepta i njihovih alata mogućnost izrade proizvoda uz nizak nivo razumevanja međuzavisnosti delova sistema i uz uspavljivanje programerovog kritičkog uma, mada to ne mora biti pravilo kod svakog programera. @bluesman to što ne umeš da prećutiš za mene nije problem. Više volim ljude koji su otvoreni, kažu šta misle pa makar i na lakat progovorili nego onu drugu, podmuklu varijantu. Moj komentar na to "da si ti ponešto naučio i ako radiš na Win" je da čitajući tvoje postove postoji bitna razlika u nivou znanja između nas dvojice, u tvoju korist. @blackshtef - koliko je poređenje sa gumom i savetom da kupiš tenk korisno videćeš kako se sve više budeš mučio sa organizacijom fajlova i pokušajima da osiguraš sistem na način koji sada radiš. Takve aplikacije su odlične za reverzni inženjering a vremenom ćeš i sam zaključiti da ne treba menjati gume na oštećenim felnama. Sve u svemu, blackshtef, izvini na mom pokušaju da pomognem. Neću te više smarati i voleo bih da ne ulazimo u dalje diskusije. |
Da bi omogućio korisnicima postavljanje slika, permisije trebaju biti 777 ili makar 766?
ps. je li generalno ovo dobar pristup: slike spremam u direktorije, a u bazu sve podatke o slici? |
^^^ Potrebne su takve permisije ako se web server vrti pod jednim user-om a vlasnik dir-a je drugi user.
Ovo se može izbjeći ako se koristi recimo mod_fcgid odnosno fastcgi gdje se skripte izvršavaju pod samim korisnikom koji je ujedno i vlasnik dir-a i fajlova. Što se tiče smještanja slika u bazu... Slike stavljaj u dirove, grupiši na 100 načina ali nemoj u bazu... U bazi drži podatke o slikama... |
Vreme je GMT +2. Trenutno vreme je 09:33. |
Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.