如何在PHP中隐藏字段中识别篡改数据?

时间:2017-11-14 09:53:35

标签: javascript php jquery hacker-news

简介

需要通过tampering data应用程序识别隐藏字段中某人所做的更改。

快照

In the snapshot, <code>hidden field</code> tampering application is opened and all the fields are there including text fields as well as hidden fields. The price has been changed from 2999 to 29.

问题

如何识别某人正在通过此应用程序更改我们网页的隐藏字段值?有没有办法在JavaScript(通过AJAXJQuery代码)中识别?或者还有其他方法可以识别吗?

1 个答案:

答案 0 :(得分:1)

如果您正在将值加载到隐藏字段中,那么我假设您知道该值是什么,应该是什么。

选项一: 在隐藏输入显示之前将值存储在会话中,然后在表单上进行比较。

session_start();
$_SESSION['hiddenValue'] = $someValue;

<form action="http://somedomain.com/endpoint" method="post">
   ...
   <input type="hidden" name="hidden" value="<?php echo $someValue;?>"/>
   <button type="submit">Submit</button>
</form>

然后在POST:

<?php
   if($_POST['hidden'] != $_SESSION['hiddenValue']) {
         // Hidden value has been changed.
   }

选项二: 从数据库或其他数据源读回值,并与post进行比较。

$someValue = // Load value from your data source

<form action="http://somedomain.com/endpoint" method="post">
   ...
   <input type="hidden" name="hidden" value="<?php echo $someValue;?>"/>
   <button type="submit">Submit</button>
</form>

然后在POST:

<?php
   $someValue = // Load value from your data source

   if($_POST['hidden'] != $someValue) {
         // Hidden value has been changed.
   }