Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][AJAX] blokada bezpośredniego wywołania pliku
!*!
post
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
!*!
post
Post #2





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.
Go to the top of the page
+Quote Post
zegarek84
post
Post #3





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

Ostrzeżenie: (0%)
-----


Cytat(wookieb @ 14.07.2009, 22:48:58 ) *
Zainteresuj się
  1. <?php
  2. echo $_SERVER['HTTP_REFERRER'];
  3. ?>

Cytat(!*! @ 14.07.2009, 23:47:30 ) *
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 ;)
Cytat(!*! @ 15.07.2009, 01:10:42 ) *
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
Go to the top of the page
+Quote Post

Posty w temacie
- !*!   [PHP][AJAX] blokada bezpośredniego wywołania pliku   14.07.2009, 19:36:09
- - kornel-php   Hmm, może pobranie do zmiennej ście...   14.07.2009, 21:46:54
- - wookieb   Zainteresuj się [PHP] pobierz, plaintext <?php...   14.07.2009, 21:48:58
- - !*!   kornel-php - w pliku który jest wczytywany przez ...   14.07.2009, 22:47:30
- - erix   ~wookieb, do tego pomyliłeś klucz. ;d Cytatjednak...   14.07.2009, 23:11:49
- - !*!   erix - sesja trwa w obrębie przeglądarki tak? Chci...   14.07.2009, 23:33:46
- - erix   No w obrębie przeglądarki. Ale tylko dla danej dom...   15.07.2009, 00:02:47
- - !*!   Ponieważ po zalogowaniu do profilu użytkownik pobi...   15.07.2009, 00:10:42
|- - zegarek84   Cytat(wookieb @ 14.07.2009, 22:48:58 ...   15.07.2009, 00:58:53
- - kipero   Niektóre firewalle blokują wysyłanie REFERERa. Co ...   15.07.2009, 06:27:00
- - wookieb   A czy powiedziałem, że jest to zabezpieczenie w 10...   15.07.2009, 08:18:46
- - !*!   Masz racje wookieb, ale w samym php był cho...   15.07.2009, 10:41:33
- - zegarek84   Cytat(kipero @ 15.07.2009, 07:27:00 )...   15.07.2009, 13:23:06
- - erix   Filtruje nagłówki. Firewalle najczęściej są dołącz...   15.07.2009, 13:29:42
- - !*!   zegarek84 - może i będę upierdliwy ale wolę to obg...   16.07.2009, 13:34:32
- - erix   CytatPrzy wersji z samym PHP robiłem na zasadzie z...   16.07.2009, 13:36:30
- - !*!   W wersji PHP było to na takiej zasadzie [PHP] pobi...   16.07.2009, 13:42:55
- - fifi209   W wersji PHP wyglądałoby to raczej tak: index.php...   16.07.2009, 13:45:47
- - !*!   Można i tak, co nie zmienia faktu że przy ajaxie j...   16.07.2009, 13:48:22
|- - fifi209   Cytat(!*! @ 16.07.2009, 13:48...   16.07.2009, 13:52:21
- - !*!   Ale to i tak mija się z celem, bo plik nadal będzi...   16.07.2009, 13:58:24
|- - fifi209   Cytat(!*! @ 16.07.2009, 13:58...   16.07.2009, 14:00:33
- - !*!   Nie będzie trudniej bo kod JS jest jawnie widoczny...   16.07.2009, 14:12:33
|- - fifi209   Cytat(!*! @ 16.07.2009, 14:12...   16.07.2009, 14:13:23
- - erix   Cytatheh ten ajax w cale taki rewelacyjny nie jest...   16.07.2009, 14:15:12
- - !*!   Nie, getem, w mintajaxie nie można ich przes...   16.07.2009, 14:16:06
|- - fifi209   Cytat(!*! @ 16.07.2009, 14:16...   16.07.2009, 14:17:23
- - !*!   jQuery jak dla mnie jest zbyt toporny i trudny do ...   16.07.2009, 14:51:35
|- - fifi209   Cytat(!*! @ 16.07.2009, 14:51...   16.07.2009, 15:36:37
- - !*!   Czytałem to jednak nadal za mało przyjazne, pozost...   16.07.2009, 16:31:36


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 28.09.2025 - 16:51