我已经阅读了
couple的
couple,但他们没有直接回答我的问题.像Firebug这样的开发人员工具允许任何人在发送表单之前查看和操作表单数据.一个很好的例子是调整隐藏的“成员ID”字段的值,以便将表单提交记入另一个用户.
防止此类篡改的最佳方法是什么?我的研究建议将敏感表单输入移动到服务器端脚本,但还有其他选项或注意事项吗?
我熟悉PHP和jQuery,所以我理想的解决方案是使用其中一种或两种语言.
最佳答案 您不能使用jQuery进行安全性,因为它全部在客户端处理.
在您的示例中,只需在隐藏输入字段的staed中使用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)
但那只是另一个故事:)