【问题标题】:Validate DATA - jQuery/Ajax (PHP)验证数据 - jQuery/Ajax (PHP)
【发布时间】:2011-08-11 10:50:03
【问题描述】:

我有一个从 2 个 SELECT 标记中获取值的 javascript,最后它将这两个值相乘。

脚本如下所示:

<script type="text/javascript" charset="utf-8"> 
  function displayVals() {
  var exposureValue = $("#mark").val();
  if(exposureValue == 1){
      exposureValue = <?php echo $sdata['ad_cost_micro']; ?>;
  }
  if(exposureValue == 2){
      exposureValue = <?php echo $sdata['ad_cost_mini']; ?>;
  }
  if(exposureValue == 3){
      exposureValue = <?php echo $sdata['ad_cost_standard']; ?>;
  }
  if(exposureValue == 4){
      exposureValue = <?php echo $sdata['ad_cost_extended']; ?>;
  }
  var clickValue = $("#series").val();
  var totalValue = exposureValue*clickValue;
  $("#price").html("<span style='font-size:22px;color:#3A8913;text-align:center;font-weight:bold;'>$" + totalValue + "</span>");

  jQuery('#p').val(exposureValue*clickValue);

  }

     $("select").change(displayVals);
        displayVals();      
        </script> 

如您所见,totalValue 被添加到 ID="p" 的隐藏 INPUT 中。

我的问题是如何确保 id="p" 的值,因此无法进行 INJECTION 或更改帖子数据之类的操作。

谢谢。

【问题讨论】:

  • 在服务器端验证它。永远不要仅仅依赖客户端验证。
  • 另外,您可能希望接受更多答案。这个问题的代码来自我昨天给你的一个答案,没有被采纳。
  • 那是什么问题?我好像没找到。
  • 很抱歉。已回答。

标签: jquery ajax forms post validation


【解决方案1】:

如何确保 id="p" 的值,因此无法进行 INJECTION 或更改发布数据之类的操作。

你不能。始终可以在客户端更改数据。

您需要保护您的服务器端逻辑免受操纵,例如检查发布的值是否有意义。

【讨论】:

  • 但是如何在页面提交表单之前验证它?
  • @Oliver 为什么需要在提交前进行验证?当您希望防止用户犯错时使用客户端验证是有意义的,但无论如何您都无法防止客户端的恶意注入。
  • 好吧,用户选择他们的价格(价格是从上面的脚本中接收的),当他们选择了他们的价格后,他们点击“立即购买”。这会将他们重定向到 AlertPay / PayPal。虽然,他们可以很容易地改变那里的价格数据。因此,我需要在提交数据之前对其进行验证。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-11
  • 1970-01-01
相关资源
最近更新 更多