0
 function updateR()
 {

    $.ajax({
       type: "POST",
       url: "update.php",
       data: { surprize: '12345678910', dpoint: point, dlevel: level }
         }).done(function( msg ) {
         //   alert( "Data Saved: " + msg );
        });

 }

それは私の機能です。ユーザーがブラウザの検査要素を開いて値のポイントを変更したい場合、ブラウザの検査要素からajax投稿値(ポイントまたはレベル)をブロックまたは保護する方法は?

4

3 に答える 3

1

要するに、あなたはできません!はい、何らかの方法でそれを隠したり、ゴミを追加して難読化したりするためにたくさんのことを行うことができますが、最終的には決心したユーザーがそれを見つけるでしょう. これは単純に、これをサーバーに送信するコードをユーザーが見ることができるためです。

AJAX リクエストにジャンク値を追加するか、実際のデータにいくつかのジャンク値を追加することで、誰かがこれを試みるのを困難にすることができます。ただし、これを行う責任がある JavaScript コードも難読化する必要があります。

しかし、これに頼らないでください!あなたはそれを困難にすることしかできませんが、決心した人はそれを行うことができるからです. また、ユーザーにとって機密のデータをサーバーに送信する必要がある場合は、ユーザーからの要求を隠そうとするのではなく、システム アーキテクチャを再考する必要があります。

于 2013-03-11T13:42:30.153 に答える
0

Web アプリケーションはクライアント サーバー アプリケーションです。クライアントから送信されるデータを信頼することはできません。ごまかすのは難しいかもしれませんが、ユーザーは変更されたデータをサーバーに送信する可能性が常にあります。

于 2013-03-11T13:41:06.170 に答える
0

実際、ユーザーは、ブラウザまたはコマンドライン/その他のツールを介して、必要なものを送信できます。

サーバー側で入力をサニタイズしてフィルタリングする必要があります。

例のために。「surprize」という名前の投稿変数に数値のみが必要であることがわかっている場合は、次の方法で検証する必要があります。

if(empty($_POST['surprize'])||!is_numeric($_POST['surprize'])){
  //invalid surprize
  die('Bad Surprize value');
}
于 2013-03-11T13:41:25.297 に答える