2016-05-24 3 views
0

私はhtmlページを持っており、DBから通常の情報(すべての人が見ることができる)をロードする必要があります。 ajax getメソッドを使用してサイトの情報をロードすることは安全ですか?

はので、私は、HTMLでこのコードを配置:

<script type="text/javascript"> 
    $(document).ready(function() { 
     setTimeout("getRate()", 100); 
    }); 

    function getRate() { 
     $.ajax({ 
      type: "GET", 
      url: "api.php", 
      dataType: "json", 
      data: {call: 'getRate'}, 
      success: function(result){ 

       //set result to the DOM element.... 

      }, 
      error: function(){ 

      } 
     }); 
    } 
</script> 

と私はこのようなapi.phpファイルを持っている:

<?php 

if($_SERVER['REQUEST_METHOD']=="GET") { 
    $function = $_GET['call']; 
    if($function == "getRate") { 
     //get result from DB 

     echo json_encode(result); 
    } 
} 

が、私のコード投稿者によると、このURLを入れると直接ブラウザ "https://****.com/api.php?call=getRate"、それはまた、jsonの結果を返した、それは安全ですか??

よくある質問ajaxコールで要求される秘密の情報はありません。 それは問題ないと思いますが、わかりません。

このようなセキュリティリスクはありますか?

+0

はちょうどwhilelist – Ghost

+0

を作成したり、彼らがAPIを持っていなかった場合は、ちょうどあなたのサイトをこすり落としたかもしれない...などなど、あなた – epascarello

+0

意見タイプの質問には、スタックオーバーフローのために良いフィットではありません。 「正しい」回答は、自分の経験やサイトの意図に大きく依存します。詳細情報:http://meta.stackoverflow.com/questions/255468/opinion-based-questions –

答えて

1

AJAX自体が安全であるかどうかの質問がある場合は、AJAXは常にブラウザとリモートAPI間で情報を交換するために使用されます。

あなたのコードについては具体的には、ここで提供される脆弱性があるようには思えない。

  1. 生のJSONレスポンスが本当に任意の秘密情報
  2. にSQLクエリ(または同等)を持っていません。誰かが何か悪意のあるものにcall: getRate paramを作ろうとすると、JSONを生成するために使用された攻撃は注射攻撃に対して脆弱ではありません。
  3. AJAX呼び出しはデータベースの状態を変更しません。
  4. AJAX呼び出しは、わずかな時間以外のリソースを束縛しません。例えば、誰かが迷惑メールをしていると、https://****.com/api.php?call=getRateはサイトをダウンさせるべきではありません。
関連する問題