2016-03-30 2 views
0

Ну я не-JQuery функция Ajax:редактируемого Javascript и Ajax

function callAjax(){ //will be sent to node server 
    var xmlhttp; 
    // compatible with IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp = new XMLHttpRequest(); 
    xmlhttp.onreadystatechange = function(){ 
     if (xmlhttp.readyState == 4 && xmlhttp.status == 200){ 
     canAjax = true; 
     //do something 
     } 
    } 
    xmlhttp.open("GET", "string", true); 
    xmlhttp.send(); 
} 

и функция, которая вызывает его:

function a(){ 

    if(mouseIdle && canAjax){ 

    callAjax() 
    } 

} 

Это своего рода апите я даю моим клиентам с следующая:

<script src = "mysrc"> 

проблема есть, любой человек может легко удалить их, если, если они хотели (в том числе их клиентов), и я не могу понять способ сделать ее неотредактируемой или, по крайней мере, предотвратимой. Я просто хочу, чтобы мой код javascript был неприкасаемым изнутри, как это можно сделать?

+0

JavaScript - это клиентская сторона, вы не можете управлять им. Углубление кода может помочь вам. – rafaelcpalmeida

ответ

2

Как сказал Квентин, вы не можете управлять JavaScript на стороне клиента, вот как работает Интернет.

Вы можете реализовать простую систему аутентификации с использованием токенов.

Ваш токен должен быть чем-то трудным, чтобы угадать, чтобы отбить атаки грубой силы, такие как хэш SHA256 текущего времени. Пустой хеш для SHA256 ниже:

e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 

Тогда вы могли бы сохранить этот маркер ключ в вашей базе данных (MongoDB, MySQL или другой), и вы должны обязывать клиент для отправки их фишки в каждом запросе они делают.

После этого вам просто нужно проверить квоту использования этого ключа и решить, следует ли вам обслуживать или нет.

+0

Хороший ответ. Кстати, как следует удалить токены из БД после того, как пользователь прекратил использовать веб-сайт? – user1938653

+0

@ user1938653 - Вы можете создать действительно простой backoffice для собственного использования, чтобы контролировать, какие токены имеют доступ к конечной точке и насколько велика квота использования – rafaelcpalmeida

0

Не может.

Все, что вы отправляете клиенту, может быть отредактировано конечным пользователем или дублировано, отредактировано и размещено на другом веб-сайте.

Если вы хотите ограничить доступ к конечной точке Ajax, вам необходимо установить защиту на сервер. Например, с ограничением скорости передачи IP-адресов.

+0

Другим методом является добавление простого метода auth с маркером, например, чтобы он мог контролировать запросы для этого клиента независимо от IP-адреса – rafaelcpalmeida

+0

@rafaelcpalmeida. Это будет зависеть от возможности ограничить доступ к конечной точке конкретным людям , вопрос не дал мне впечатления, которое было бы возможно. – Quentin

+0

Каковы рекомендуемые способы контроля Ajax-запросов или запросов в целом? Я должен быть в состоянии убедиться, что клиент не переполняет меня запросами. – user1938653

Смежные вопросы