2015-09-20 16 views
5

私は単純なHTML5 Canvasゲームを持っており、パートの最後にはMySQLに変数を格納したいと思っています。 XMLHttpRequestやAjaxなどでこれを行うのは安全ですか?JavaScriptからPHPファイルを呼び出すのは安全ですか?

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難読化ツールライブラリJScrambler

  • サンプルJS縮小化ライブラリUglifyJS

  • Authentication-を呼び出し確保するために、認証、難読化と縮小化を組み合わせて使用​​することができます

    私は、 APIには何らかの種類の認証フィールドがあります(例:ハッシュ/トークンなど)。そうでない場合は、This answerと統合できます。

    • Session BasisでJSクライアントに与えられたsalt(またはAPIキー)を使用していることを確認してください。これにより、不正なアクセスを防ぐことができます。
    • サーバー側で最後のいくつかのエンドポイント呼び出しを覚えておいて、別のものを許可する前に、ロジックが今すぐ新しいものを許可しているかどうかを確認してください。

あなたはそれ以上の手順を実行すると、確かに、それは非常に安全になります。

関連する問題