Аякс с жетонами - PullRequest
       3

Аякс с жетонами

0 голосов
/ 16 января 2011

Как бы вы использовали токены со следующим?

$('#DIV').load('child.php?id='+id);

Чтобы вы не могли получить доступ к child.php прямо из браузера и ввести child.php? Id= 1

Если это невозможно с токенами, будет ли какой-либо другой способ?

Мысль о XMLHttpRequest выглядит следующим образом:

var mygetrequest=new ajaxRequest();
mygetrequest.onreadystatechange = function(){
    if (mygetrequest.readyState==4){ 
        if (mygetrequest.status==200 || window.location.href.indexOf("http")==-1){ 
            document.getElementById("DIV").innerHTML = mygetrequest.responseText;
        } else{ 
            alert("An error has occured making the request");
        }
    }
}
mygetrequest.open("GET", "child.php?id="+id, true);
mygetrequest.send(null);

Большое спасибо.

Ответы [ 2 ]

1 голос
/ 16 января 2011

Вам нужно проверить, является ли запрос ajax-запросом (от load()) или нет, это можно сделать следующим образом:
child.php:

if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
    // it's an ajax request validate id and continue!
} else {
    // this is not an ajax request, get out of here!
}
0 голосов
/ 16 января 2011

Вы можете использовать пост jQuery для отправки параметров «за кулисы», а затем проверить, был ли запрос отправлен из определенного места или IP-адреса в фактическом файле php.Если у местоположения или IP-адреса нет прав доступа к нему, просто выведите ошибку, используя, например, метод die(), прежде чем что-либо еще будет выведено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...