如何阻止或保护浏览器检查元素中的ajax post值

时间:2013-03-11 13:38:01

标签: php jquery ajax post inspect

 function updateR()
 {

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

 }
这是我的功能。如果用户想要打开浏览器检查元素并更改值点,如何阻止或保护浏览器检查元素中的ajax post值(点或级别)?

3 个答案:

答案 0 :(得分:1)

总之,你不能!是的,你可以做一些东西以某种方式隐藏它或添加一些垃圾来混淆它但最终确定的用户会找到它。很简单,因为用户可以看到负责将其发送到服务器的代码。

现在,您可以通过向AJAX请求添加垃圾值,或者通过附加一些垃圾值的实际数据来让尝试这一点的人变得困难。但是你必须混淆你的javascript代码,这也是负责这样做的。

但是,别也不要依赖于此!因为你只能让它变得困难,但有人决定能够做到这一点。如果您发现自己需要向服务器发送一些对用户保密的数据,那么您需要重新考虑系统架构,而不是试图隐藏用户的请求。

答案 1 :(得分:0)

Web应用程序是一个客户端服务器应用程序,您永远不会信任来自客户端的数据,也许您可​​以更难以作弊,但用户始终可以将修改后的数据发送到您的服务器。

答案 2 :(得分:0)

实际上,用户可以通过浏览器或命令行/任何其他工具发送他想要的任何内容。

你必须消毒&过滤您服务器端的输入。

对于前。如果你知道你只想要名为'surprize'的post var的数值,你必须通过以下方式验证它:

if(empty($_POST['surprize'])||!is_numeric($_POST['surprize'])){
  //invalid surprize
  die('Bad Surprize value');
}