Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Blokada wykonania skryptu, obiekt advAJAX
mike
post
Post #1





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Witam,

Proszę was o poradę. Oto sytuacja, którą mam (w skrócie):
index.html
Kod
<script type="text/javascript">
    function goAction()
    {
        advAJAX.get({
            url: "action.php",
            onSuccess : function( obj )
                        {
                            document.getElementById( 'contentContainer' ).innerHTML = obj.responseText;
                        },
            onError : function( obj )
                      {
                          document.getElementById( 'contentContainer' ).innerHTML = 'Nie udało się wczytać danych.';
                      }
        });

        return false;
    }
</script>

<a href="#" onclick="goAction();">załaduj dane</a>
<div id="contentContainer">
test
</div>


action.php
  1. <?php
  2.  
  3. echo 'jakieś dane załadowane przez php';
  4.  
  5. ?>


Jak widać dzięki obiektowi advAJAX klinięcie w link spowoduje załadowanie danych do elementu <div>.

I teraz moje pytanie:
Macie pomysł jak zabezpieczyć plik action.php żeby wykonanie jego było możliwe tylko po wywołaniu "ajaxowym".
Bo przecież równie dobrze mogę sobie wkleić link do pliku action.php do URL'a i zobaczyć jego działanie bezpośrednio. A tego właśnie chcę uniknąć.

Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
hwao
post
Post #2


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




ciezka sprawa (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Mozesz sprawdzac w $_SERVER skad user przyszedl, badz tez wysylac jakies dane extra ajaxem (co prawda zawsze da sie to obejsc, ale innego wyjscia nie ma) lub zwraca dane zaszyfrowane jakos i w js rozszyfrowywac.
Go to the top of the page
+Quote Post
mike
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Problem nurtował mnie na tyle, że postanowilem zapytać twórcę advAJAX'a.
I odpowiedź jest taka:
Nie da się (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
To zawsze będzie żądanie przeglądarki i zawsze będzie jakos można podejrzeć wyniki.

Postanowiłem więc sprawić, że bedzie to jak najtrudniejsze i:
1. Wysyłam żądanie za pomoca metody POST;
2. Sprawdzam czy wśród parametrów istnieje i jest ustawiony (mniejsza o wartość) parametr uniqueParameter (Ci którzy znają biblioteke advAJAX wiedzą co to jest (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) )

P.S.
~hwao też myślałem że $_SERVER mi pomoże, niestety wygląda ona tak samo przy obu żądaniach
Go to the top of the page
+Quote Post
sobstel
post
Post #4





Grupa: Zarejestrowani
Postów: 853
Pomógł: 25
Dołączył: 27.08.2003
Skąd: Katowice

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


nie jestem jakos specjalnie zaznajomiony z ajaxem i nie jestem pewny czy to by pomoglo, ale mozna np. ustawic cookie (w ajaxowym kliencie), ktore skrypt ajaxowego serwera sprawdza i na koncu usuwa. albo poprzez token trzymany w sesji.

np. cookie moze byc ustawiane poprzez js zaraz przed wyslaniem żądania do serwera i usuwane przez sam skrypt serwera albo po prostu po odebraniu odpowiedzi.
Go to the top of the page
+Quote Post
hwao
post
Post #5


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




Cytat(mike_mech @ 2006-01-05 19:12:21)
P.S.
~hwao też myślałem że $_SERVER mi pomoże, niestety wygląda ona tak samo przy obu żądaniach

ale wysylaja zadanie mozesz dodawac naglowki.
Go to the top of the page
+Quote Post

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: 23.08.2025 - 04:47