2015-09-20 4 views
5

У меня есть простая игра HTML5 Canvas, и в конце части я хочу хранить переменные в MySQL. Безопасно ли это делать с помощью XMLHttpRequest, Ajax или чего-нибудь еще? Это, как я начал писать:Безопасно ли вызывать PHP-файл из JavaScript?

var request = new XMLHttpRequest(); 
request.onreadystatechange = function() { 
    if (request.readyState == 4 && request.status == 200) { 
     var success = request.responseText; 
     alert(success); 
    } 
} 
request.open('GET', 'saveLevel.php?name='+name+'&level='+level, true); 
request.send(); 

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

var request = new XMLHttpRequest(); 
request.onreadystatechange = function() { 
    if (request.readyState == 4 && request.status == 200) { 
     var success = request.responseText; 
     alert(success); 
    } 
} 
request.open('GET', 'saveLevel.php?name='+name+'&level=100', true); 
request.send(); 

(Как) я могу решить эту проблему?

+0

Это безопасно, как ваш PHP-код, и ваше сетевое подключение –

+0

Как вы думаете, что это небезопасно? Я чувствую, что вы говорите, это не то, что другие люди считают «безопасным». Да, любой может вызвать вашу php-страницу, не используя ваши методы. Это небезопасно? Не совсем, но вы можете подумать. – epascarello

+1

Вам нужно немного изменить свою архитектуру. Никогда не бывает безопасным, если клиент решает что-либо и заставляет сервер подчиняться. Вы захотите _notify_ сервер об этом и решите, что делать. – DeDee

ответ

4

Вы можете использовать комбинацию аутентификации, запутывания и Минимизация обеспечить вас JavaScript Сеть звонки

  • Образец JS Obfuscator Библиотека JScrambler

  • Sample JS минификация Библиотека UglifyJS

  • Authentication-

    Я предполагаю, ваш API имеет какое-то поле аутентификации (например, Хэш/токен и т. Д.). Если нет, вы можете интегрировать его с - This answer.

    • Убедитесь, что вы используете соль (или даже ключ API), которая предоставляется вашему JS-клиенту на основе сеанса. Таким образом, вы можете предотвратить его несанкционированный доступ.
    • На стороне сервера помните о последних вызовах конечных точек, и перед тем, как разрешить другой, проверьте, разрешает ли ваша логика новая.

Если вы будете следовать шаги над ним, безусловно, сделать это очень безопасно.

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