Как безопасно пересечь сценарий (подумайте аналитику) - PullRequest
0 голосов
/ 21 января 2012

В эти выходные я создаю своего рода аналитическую платформу для развлечения, и вот мой желаемый эффект.

Клиент: abc.com Сервер: test.com

посещения пользователя http://abc.com/#12345

Клиент отправляет Сервер через идентификатор JavaScript: 12345 и информацию браузера. Сервер отвечает новым идентификатором (например: # 23456), который затем помещается на текущий URL-адрес (pushstate) http://abc.com/#23456

Я думал о каком-то сценарии, который Клиент включает с Сервера, который связывается с серверной частью, но разве это не технически XSS и небезопасно? Как это делают аналитики (Google, GetClicky и т. Д.)?!

Как я могу добиться этого, как это делают аналитические сайты, чтобы боги интернета не сердились на меня за XSS, при этом сохраняя безопасность и простоту реализации. Один включенный источник.

Мне бы понравилось все, что вы можете сделать, чтобы направить меня в правильном направлении.

1 Ответ

0 голосов
/ 21 января 2012

с JSONP. Идея заключается в том, что источником тега script является код, который вы хотите выполнить:

<script type="text/javascript" src="http://yoursite.com?id=12345&this=that" />

edit: Да, вы создаете скрипт, динамически похожий на ответ ajax:

function getResponse(id){
    var scrpt = document.createElement("script");
    scrpt.type="text/javascript";
    scrpt.src = "http://yoursite.com?id="+id;
    document.body.appendChild(scrpt);
}

Внутри вашей страницы php:

<?PHP 
    if(!isset($_GET['id']))die();
    $id = $_GET['id'];
    echo "alert('$id');";
?>

В любом случае, что-то в этом роде.

edit: полностью забыл, но смысл jsonp в том, что вы передаете функцию обратного вызова. Смотрите здесь для некоторой документации PHP: http://php.net/manual/en/function.json-encode.php

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