security - 保护表单数据免受恶意用户使用 Firebug 侵害的最佳方法?

标签 security webforms firebug form-submit

我读过一篇couplerelated questions对此,但他们没有直接回答我的问题。 Firebug 等开发人员工具允许任何人在发送表单之前查看和操作表单数据。一个很好的例子是调整隐藏的“成员 ID”字段的值,以便将表单提交记入另一个用户的帐户。

防止此类篡改的最佳方法是什么?我的研究建议将敏感的表单输入移至服务器端脚本,但还有其他选择或注意事项吗?

我熟悉 PHP 和 jQuery,因此我理想的解决方案将使用其中一种或两种语言。

最佳答案

您不能使用 jQuery 来确保安全,因为它都是在客户端处理的。

在您的示例中,只需在隐藏的输入字段中使用 PHP session ,因为正如您正确地指出的那样,这可以被操纵。

使用 session 将如下所示:

登录页面

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

登录.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
}

session 将一直处于事件状态,直到用户关闭浏览器/直到 session 过期(这是 PHP 设置)

以上只是一些示例代码,供您引用。

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

但这只是另一个故事了:)

关于security - 保护表单数据免受恶意用户使用 Firebug 侵害的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6116234/

相关文章:

performance - Firebug net 选项卡报告的页面接收时间长(页面加载缓慢)

php - 在此AJAX/PHP MySQL搜索字段上添加速率限制

security - 在网站之间安全地转移用户

asp.net - Webforms 路由 - 不同页面的相同签名?

iphone - 为移动设备开发网站的最佳方式是什么?

http - 使用 netcat 代理的 Firebug 网络面板中的“中止”状态

java - IBM Appscan 安全漏洞 SQL 注入(inject)

security - SSL:如何平衡 API 性能与安全性?

asp.net - 隐式本地化、强类型资源、App_LocalResources 和嵌入式资源

c# - 如何从 asp :checkbox .net c# 中检索多个选定值