你不能使用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'];
page-where-userid-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验证作为方便的工具来捕获基本的输入问题,但是只有经过服务器端代码验证的数据才是可信的。