Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JQUERY+PHP+przesyłanie tokena]
Forum PHP.pl > Forum > XML, AJAX
Sokon
Witam,

robię sobie taki maly projekt, w sumie na własny użytek, ale będzie wystawiony w necie i chcę go dobrze zabezpieczyć.
Problem polega na tym, że postanowiłem zaprządz do pracy jQuery w połączeniu z Php.
Mam plik .php ładowany z jQuery za pomocą zdarzenia .load(), plik ten jest ładowany z parametrami $_GET i w zależności od parametrów wykonuje inne rzeczy.
Jak się zastanowiłem to stwierdziłem, że to trochę bez sensu, bo inne bardziej newralgiczne pliki są ładowane tak samo a wystarczy podejrzeć kod JS i widać jak na
widelcu co podstawić żeby uzyskać jakiś efekt.

Znalazłem ten artykuł http://www.kminek.pl/ajax-i-bezpieczenstwo...owych-skryptow/ ale opisane w nim zabezpieczenie też nic nie daje, bo muszę i tak token wysłać za pomocą $_GET a ten $_GET muszę gdzieś zdefiniować i znowu jest otwartym tekstem.

Zrobiłem w FF eksperyment na zabezpieczeniu z artykułu, odpaliłem stronę z projektem utworzył się token który trafił do sesji, potem wyciągnąłem z JS plik .php i parametry jakie przyjmuje, następnie CTRL+T w nowej zakładce podałem ścieżkę do pliku .php z wartością tokena która była zapisana w kodzie strony oraz parametrami, po wciśnięciu ENTER oczom mym :-) ukazał się wynik skryptu Php.
Pytanie, jak zabezpieczyć taki wynalazek aby działał podobnie do joomlowego
  1. <?php
  2. defined( "_DIRECTACCESS" ) or die ('Restricted access!');
  3. ?>

chodzi mi o wycięcie bezpośredniego dostępu do pliku .php ładowanego AJAX'em.

Bo w sumie pomysł z tokenem nie jest głupi, tylko nie bardzo wiem, jak go przekazać nie wpisując go w kod strony?
czachor
Tzn. chcesz zablokować dostęp do plików php zezwalając na ich wywołanie tylko przez AJAX?
Sokon
tak
czachor
Możesz użyć .htaccessa:
Kod
#blokada żądań nie ajaxowych - efektem jest 503
SetEnvIfNoCase X-Requested-With XMLHttpRequest ajax
Order Deny,Allow
Deny from all
Allow from env=ajax


PS. Czasem może nie działać ze względu na niewysyłanie nagłówka X-Requested-With w niektórych przypadkach (więcej na google), ale generalnie u mnie się sprawdziło.
PS2. Powyższe wrzucasz do katalogu z plikami, do których dostęp jest tylko via ajax.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.