miras
18.11.2015, 10:01:53
Ma ktoś pomysł jak zabezpieczyć plik php wykonywany ajaxem?
Crozin
18.11.2015, 10:06:16
Jak "zabezpieczyć"? AJAX nie ma najmniejszego wpływu/związku z PHP-em.
Pyton_000
18.11.2015, 10:11:47
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') { }
miras
18.11.2015, 10:50:31
httprequest zabezpieczy przed wszystkim?
np.
req = new XMLHttpRequest();
var params = "name=../images/bg4&output=aaaaaa&token=e602274871a2be7a53142d417405119a";
req.open("POST", "include/save.php", true);
req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
req.onreadystatechange = function() {//Call a function when the state changes.
if(req.readyState == 4 && req.status == 200) {
alert(req.responseText);
}
}
req.send(params);
Crozin
18.11.2015, 10:54:13
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
18.11.2015, 10:56:19
Muszę zrobić tak, żeby dostęp do tego pliku, który wykonuje ajax był tylko i wyłącznie możliwy z tego:
$.ajax({
type : 'POST',
url : 'include/save.php',
data: 'name='+name+'&data='+output+'&token=
<?php echo $token; ?>',
success : function(data) {
$(".loading").hide();
$("#share").show();
document.getElementById('image').appendChild(image);
}
});
Żeby nie dało się żadnym curlem ani niczym innym wykonać tego pliku save.php
by_ikar
18.11.2015, 11:04:23
Tak się nie da, co może wykonać przeglądarka, może wykonać każdy.
Pyton_000
18.11.2015, 11:04:28
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
18.11.2015, 11:05:18
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
18.11.2015, 11:09:51
Dostales juz odpowiedz
Cytat
Tutaj pozostaje Ci kwestia dodatkowych zabezpieczeń po stronie serwera: tokeny, sesje, autoryzacja.
miras
18.11.2015, 11:13:57
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
18.11.2015, 11:21:50
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
18.11.2015, 11:28:03
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
18.11.2015, 11:30:24
Curl może sobie zapisać ciacho sesji i po Twoim zabezpieczeniu
miras
18.11.2015, 11:38:51
Dobra, a ma ktoś jakiś sposób na upload grafiki w jquery bez ajax?
Pyton_000
18.11.2015, 11:44:54
Zwykły form.
miras
18.11.2015, 11:49:35
Chodzi mi o grafikę wygenerowaną z html2canvas
nospor
18.11.2015, 12:25:26
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.