![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
W pliku index.php odczytuję za pomocą ajaxa plik test.php, jednak chciałbym aby plik test.php był tylko dostępny z poziomu zalogowania/pliku index.php, tak aby nie można było odczytać go dając bezpośrednią ścieżkę do niego.
Po przczytaniu kilku postów myślałem o tokenie w sesji... ale to też mija sie z celem, skoro odpalę index.php który wygeneruje token, a plik test.php ma go sprawdzić to co za różnica czy sprawdzę go w index.php czy bezpośrednio się do niego odwołując, to żadne zabezpieczenie, bo sesja będzie już istnieć. Ten post edytował !*! 14.07.2009, 19:36:59 -------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 210 Pomógł: 20 Dołączył: 7.07.2006 Skąd: Krotoszyn Ostrzeżenie: (0%) ![]() ![]() |
Hmm, może pobranie do zmiennej ścieżki do otwartego pliku i sprawdzenie, czy nie jest to "test.php"...
O ile dobrze zrozumiałem istotę problemu... Ten post edytował kornel-php 14.07.2009, 21:47:34 -------------------- :)
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Zainteresuj się
-------------------- |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
kornel-php - w pliku który jest wczytywany przez ajax to nie działa. Ponieważ plik wczytywany jest "bezpośrednio".
wookieb - referrer można podmienić choćby w curlu. -------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
~wookieb, do tego pomyliłeś klucz. ;d
Cytat jednak chciałbym aby plik test.php był tylko dostępny z poziomu zalogowania/pliku index.php, tak aby nie można było odczytać go dając bezpośrednią ścieżkę do niego. Niby czemu? Sprawdzanie sesji by nie wystarczyło? -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
erix - sesja trwa w obrębie przeglądarki tak? Chciałbym plik test.php wczytywać tylko poprzez plik index.php i nigdzie więcej. Co z tego że ustawię sprawdzanie sesji, skoro wywołam plik test.php bezpośrednio w adresie i sesja będzie się zgadzała. Pamiętajcie że chodzi o ajax.
EDIT: A $_SERVER['REQUEST_URI']; ? Można jakoś wysłać curlem bądź podmienić? mógłbym wtedy sprawdzić czy ... heh w zasadzie to już nie wiem... -------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
![]()
Post
#7
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
No w obrębie przeglądarki. Ale tylko dla danej domeny przecież. Nadal nie rozumiem, po co tak kombinujesz...
-------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Ponieważ po zalogowaniu do profilu użytkownik pobiera swoje dane... niezbyt profesjonalnie wygląda opcja odczytu ich przez wczytanie bezpośredniego pliku który za to odpowiada.
-------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
Zainteresuj się
wookieb - referrer można podmienić choćby w curlu. tak jak każdy inny parametr więdząc uprzednio co jest wysyłane - a sprawdzić to można przy pomocy live http headers ;) Ponieważ po zalogowaniu do profilu użytkownik pobiera swoje dane... niezbyt profesjonalnie wygląda opcja odczytu ich przez wczytanie bezpośredniego pliku który za to odpowiada. jeśli ktoś wpisuje adres z "palca" to nie ma wtedy referera... jednak aby dane były dostępne tylko dla konkretnego zalogowanego urzytkownika (mniejsza z tym czy on umie też z curla kożystać jeśli do tego się posłuży swoimi danymi - pozatym nie da się schować coś co chcesz pokazać - jedynie możesz tylko utrudnić - nic więcej...) - gdyż wysyłać możesz też w zależności ktury to urzytkownik to wysylaj też sesję jego zalogowania w przeglądarce - nie twórz dodatkowych bo szkoda zabawy... dane najlepiej wysyłaj metodą post... przy okazji w tablicy $_SERVER sprawdź jeszcze jaką metodą przyszło zapytanie ('REQUEST_METHOD')... jak już pisałem wysyłając postem sesję to jeśli ktoś ręcznie wpisze adres to już jakieś zabezpieczenie... dodatkowo możesz sprawdzać jeśli nie chcesz aby jakichś danych nie hotlinkowali np. obrazków i nie otwierali w nowych kartach to czy zawsze jest referer i czy: Kod (parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST)==$_SERVER['SERVER_NAME']) ale to tez może posłużyć jako dodatkowe zabezpieczenie do skryptu ajax... co do 'REQUEST_URI' o które się pytałeś to w zasadzie masz to też w refererze ;) ogólnie możesz pododawac tych argumentów ale dla kogoś wprawnego nie będzie problemu z przejrzeniem tego w curl'u - jednak przejrzy tylko swoje dane - a przy wpisaniu adresu z palca to mu już nie wyjdzie ;) ps. są też inne funkcji niż curl gdzie można wysłać nagłówki rządania ;) Ten post edytował zegarek84 15.07.2009, 01:05:31 -------------------- Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 233 Pomógł: 50 Dołączył: 28.10.2006 Skąd: Radom Ostrzeżenie: (0%) ![]() ![]() |
Niektóre firewalle blokują wysyłanie REFERERa. Co w takim wypadku?
-------------------- |
|
|
![]()
Post
#11
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
A czy powiedziałem, że jest to zabezpieczenie w 100% bezpieczne? ŻADNE ale to ŻADNE zabezpieczenie nigdy nie bedzie w 100% zapewniało bezpieczeństwa i zawsze plik będzie mozna wywołac bezpośrednio stosując odpowiednie techniki.
A jeżeli chodzi o sprawdzenie zalogowania to tylko sesje i to byłby koniec tematu. -------------------- |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Masz racje wookieb, ale w samym php był choćby prosty myk że w pliku index dawałeś zmienną [token], w includowanym pliku sprawdzałeś czy istnieje, jeśli nie exit. Z ajaxem nie ma tego zastsosowania bo każdy plik jest wczytywany na nowo a nie "we wewnątrz"
Ten post edytował !*! 15.07.2009, 10:41:54 -------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
Niektóre firewalle blokują wysyłanie REFERERa. Co w takim wypadku? podaj przykład - aż sprawdzę - by6łem pewien że całe zapytanie było wysyłąne na tym samym porcie ;p - a na fiirewall'u można blokować porty i kierunek wyjścia - oraz gdzie ![]() Masz racje wookieb, ale w samym php był choćby prosty myk że w pliku index dawałeś zmienną [token], w includowanym pliku sprawdzałeś czy istnieje, jeśli nie exit. Z ajaxem nie ma tego zastsosowania bo każdy plik jest wczytywany na nowo a nie "we wewnątrz" co z tego - ten takzwany token nie pamiętam czy np. cookies są wysyłąne automatycznie z ajaxem - podałem narzędzie do sprawdzenia - to samą sesję możesz traktować jako Twój token ;p - nie przesadzaj z zabezpieczeniami a skup sie na krytycznych błedach ;p... i tu właśnie w pliku który wywołujesz ajaxem tez treśc możesz zmienać w zqależności od zmiennych post i zmiennych get - lub nagłówków przeglądarki - więc czemu piszesz, że nie da się sprawdzić Twojego tokena?? - inna sprawa, że nie wiem jak to dokłądnie rozwiązałeś ;p Ten post edytował zegarek84 15.07.2009, 13:29:05 -------------------- Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.
|
|
|
![]()
Post
#14
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Filtruje nagłówki. Firewalle najczęściej są dołączone do pakietów "Internet Security", produkty Symanteca chyba wycinają, Steganos też.
-------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
zegarek84 - może i będę upierdliwy ale wolę to obgadać, w końcu co dwie głowy to nie jedna.
Wykorzystuję bibliotekę mintajax, przykładowo odwołuję się do pliku który dałem jako RR: Kod ... var tabs = mint.gui.CreateTabWidget("wyswietltu"); tabs.AddItem("start", "start", "text", "[b]start20[/b]"); ... gdzie start20 to RR wiodący do pliku test.php a sam RR wygląda tak: Kod RewriteRule ^(start20)$ /katalog/start.php [L] w pliku index.php klikam w link który odwołuje się do start20 tymsamym zawartość pliku test.php jest wczytywana do diva wyswietltu i to mi odpowiada. Ale, pogubiłem się bo nie wiem czy i jak to zabezpieczyć, bo jeśli wpiszę httpL//domena/start20 to plik zostanie wyświetlony bezpośrednio. Wyświetlając go sprawdzam sesję, więc ktoś kto nie jest zalogowany, bądź ma inną nie zobaczy nic innego, ale nie jestem przekonany czy takie wyświetlanie danych... No nie wyglada to zbyt dobrze. Dlatego zastanawiam się jak to zapezpieczyć? Przy wersji z samym PHP robiłem na zasadzie zmiennej która była odczytywana getem po kliknięciu na linkt, od zawartości geta zmieniała się zawartość wczytywanego pliku. A jak to zrobić przy pomocy ajaxa? Chyba za bardzo nie rozumiem działania jego mechanizmu jeszcze. -------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
![]()
Post
#16
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat Przy wersji z samym PHP robiłem na zasadzie zmiennej która była odczytywana getem po kliknięciu na linkt, od zawartości geta zmieniała się zawartość wczytywanego pliku. A jak to zrobić przy pomocy ajaxa? Przecież AJAX, to to samo, jak poprzednie wywołanie... Tylko jakby innym klientem. [; -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
W wersji PHP było to na takiej zasadzie
Wtedy link wyglądałm mniej więcej http://domena/index-start lub http://deomena/index?cos=start itp. Ale nie mam pojęcia jak odwołać się do tego ajaxem ... -------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
![]()
Post
#18
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
W wersji PHP wyglądałoby to raczej tak:
index.php
test.php
-------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Można i tak, co nie zmienia faktu że przy ajaxie jeśli w index dam define to plik załadowany przez ajax już nie odczyta tego z index.php
-------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
![]()
Post
#20
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Można i tak, co nie zmienia faktu że przy ajaxie jeśli w index dam define to plik załadowany przez ajax już nie odczyta tego z index.php A no nie, ja dałem przykład dla PHP. ;) Generuj jakiś kod ajax'em i po stronie php go sprawdzaj. I np. kod działa przez 10 minut etc. różne są pomysły i rozwiązania. -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 20.07.2025 - 02:08 |