Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zabezpieczenie AJAX
Forum PHP.pl > Forum > Przedszkole
miras
Ma ktoś pomysł jak zabezpieczyć plik php wykonywany ajaxem?
Crozin
Jak "zabezpieczyć"? AJAX nie ma najmniejszego wpływu/związku z PHP-em.
Pyton_000
  1. if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
  2. die('AJAX');
  3. }
miras
httprequest zabezpieczy przed wszystkim?

np.

  1. req = new XMLHttpRequest();
  2. var params = "name=../images/bg4&output=aaaaaa&token=e602274871a2be7a53142d417405119a";
  3. req.open("POST", "include/save.php", true);
  4.  
  5. req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  6.  
  7. req.onreadystatechange = function() {//Call a function when the state changes.
  8. if(req.readyState == 4 && req.status == 200) {
  9. alert(req.responseText);
  10. }
  11. }
  12. req.send(params);
Crozin
Cytat
httprequest zabezpieczy przed wszystkim?
Nie zabezpieczy przed niczym to jest tylko dodatkowy nagłówek informacyjny, który wysyłają przeglądarki. Ale każdy może sobie taki dodać do dowolnego żądania.

Nadal nie napisałeś przed czym chcesz się zabezpieczyć...
miras
Muszę zrobić tak, żeby dostęp do tego pliku, który wykonuje ajax był tylko i wyłącznie możliwy z tego:

  1. $.ajax({
  2. type : 'POST',
  3. url : 'include/save.php',
  4. data: 'name='+name+'&data='+output+'&token=<?php echo $token; ?>',
  5. success : function(data) {
  6. $(".loading").hide();
  7. $("#share").show();
  8. document.getElementById('image').appendChild(image);
  9. }
  10.  
  11. });


Żeby nie dało się żadnym curlem ani niczym innym wykonać tego pliku save.php
by_ikar
Tak się nie da, co może wykonać przeglądarka, może wykonać każdy.
Pyton_000
Nie da się zabezpieczyć w 100% zasobów które udostępniasz publicznie.
Tutaj pozostaje Ci kwestia dodatkowych zabezpieczeń po stronie serwera: tokeny, sesje, autoryzacja.

Poza tym bez sensu jest zabezpieczać ajax, bo równie dobrze można odpalić bota który będzie śmigał po przeglądarce i klikał.
miras
Czyli teoretycznie nie da się tego zabezpieczyć? w żaden inny sposób? A może jakaś alternatywa? W tym pliku php zapisuje mi się tylko grafika - nic więcej nie robi.
nospor
Dostales juz odpowiedz
Cytat
Tutaj pozostaje Ci kwestia dodatkowych zabezpieczeń po stronie serwera: tokeny, sesje, autoryzacja.
miras
To nic nie da, mam token w sesji, wchodzę na stronę pobieram ten token z kodu źródłowego i normalnie w konsoli curlem to wykonuje..

A może lepszym rozwiązaniem będzie zrezygnowanie z ajaxa i javascriptem w jakis sposob uploadować te obrazki?
nospor
Zrozum wkoncu, wszystko co moze przegladarka, mozna bez problemu zrobic curlem. Napisano ci juz ze nie ma zadnych 100% zabezpieczen. Nie piszemy ci tego by zrobic na zlosc, ale dlatego ze taki jest fakt.
miras
Dobra, ostatnie pytanie:

W pliku index.php

tworzę zmienną sesyjną o wartosci 123456789
i potem sprawdzam tą zmienną sesyjną w pliku save.php np if ($_SESSION[token]=="123456789")
nie przesyłam tego żadnym postem tylko po prostu w sesji, w przeglądarce już nie ma opcji tego podejrzeć.
kapslokk
Curl może sobie zapisać ciacho sesji i po Twoim zabezpieczeniu smile.gif
miras
Dobra, a ma ktoś jakiś sposób na upload grafiki w jquery bez ajax?
Pyton_000
Zwykły form.
miras
Chodzi mi o grafikę wygenerowaną z html2canvas
nospor
Nadal zwykly form sie do tego nadaje i nadal mozna to zrobic rowniez w curl. Bez sensu kombinujesz i tyle.

Napisz moze lepiej co ci szkodzi, ze ktos uzyje do tego curl to moze bedzie ci mozna jakos pomoc, na chwile obecna caly ten temat wyglada smiesznie - my swoje a ty swoje.
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.