保护使用Firebug的恶意用户的表单数据的最佳方法?

我已经阅读了几个相关的问题,但他们没有直接回答我的问题。 像Firebug这样的开发工具允许任何人在发送表单之前查看和处理表单数据。 一个很好的例子就是调整一个隐藏的“会员ID”字段的值,以便表单提交被记入另一个用户。

什么是防止这种篡改的最佳方法? 我的研究表明将敏感表单输入移动到服务器端脚本,但是还有其他选择或考虑吗?

我熟悉PHP和jQuery,所以我理想的解决方案是使用这两种语言中的一种或两种。


你不能使用jQuery的安全性,因为它全部在客户端处理。

在你的例子中,只需使用一个PHP会话来处理隐藏的输入字段,因为正如你注意到的那样,这可以被操纵。

使用会话将如下所示:

登录页面

<form action="login.php" method="post">
  <input type="text" name="username">
  <input type="password" name="password">
  <input type="submit" name="submit" value="submit">
</form>

的login.php

// you have to include this on every page to be able to user sessions.
// also make sure that you include it before any output
session_start();

//Always sanitize the user input before doing any db actions.

//For example by using: `mysql_real_escape_string()` ( http://php.net/manual/en/function.mysql-real-escape-string.php ).

// check user credentials against db

$_SESSION['user'] = $dbresult['username'];

页面,其中,用户ID-IS-required.php

session_start();

if (!isset($_SESSION['user'])) {
    // user is not logged in!
} else {
    // use user info to place order for example
}

会话将一直处于活动状态,直到用户关闭浏览器/直到会话过期(这是PHP设置)

以上只是一些示例代码给你一个想法。

它适用于较小的项目,但是随着项目变得越来越复杂,我建议采用MVC(模型,视图,控制器)方式。 (http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller)

但这只是一个完整的故事:)


以下是一些基本建议:

  • 您需要使用服务器端(PHP)脚本验证表单输入。

  • 从表单中,您可以将这些数据缓存在服务器会话中,而不是依赖于敏感的信息,例如成员ID。 这样,恶意用户就无法立即更改数据。

  • 您仍然可以使用jQuery验证作为方便来捕获基本输入问题,但您只能信任使用服务器端代码验证的数据。

    链接地址: http://www.djcxy.com/p/26421.html

    上一篇: Best ways to secure form data from malicious users wielding Firebug?

    下一篇: How can I get form data with JavaScript/jQuery?