保护使用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?