1

[我希望这个问题不要太宽泛,我认为这个主题有趣,但我鼓励你告诉我这是否违反政策。]

我的情况是这样的:

  • 我有一个 LAMP 网站,它还存储敏感数据和文档
  • 只有注册用户才能在网站上进行操作,并且只能对某些数据和文件进行操作。用户存储在 $_SESSION 变量中
  • 大多数页面都实现了一种基本的权限控制,但一些重要的数据库操作是通过 AJAX 调用的
  • AJAX 安全性实施得很差,因为任何聪明的人都可以篡改发送他们喜欢的任何 id 的请求,并以残酷的简单性删除记录

要求一本关于安全性的完整书籍显然有点过分(而且我已经在阅读并尝试了很多关于该主题的内容),假设我主要关心的是是否应该特别对待 AJAX 页面,因为我需要保护整个软件以防止黑客攻击和其他问题。

4

2 回答 2

3

假设我主要关心的是是否应该特别关注 AJAX 页面

并不真地。他们应该与任何其他请求几乎完全相同。所有HTTP 请求都来自您的系统外部,并在客户端的控制下(因此可以或多或少地包含用户可以想象的任何内容)。

您可能会返回 JSON,可能会返回完整的 HTML 文档,也可能会返回 XML — 但格式无关紧要,数据才是。

如果请求是针对敏感数据的,那么您需要(在服务器上)对用户进行身份验证,然后确保他们有权查看/编辑该数据。

唯一的区别是您如何呈现“您未获授权”消息。当您希望浏览器将数据加载到 XHR 中时,您不能简单地返回带有登录表单的 HTML 文档。响应需要进行适当的格式化,并且 JavaScript 需要能够处理它。

于 2012-06-20T10:45:26.927 回答
1

我有一个 LAMP 网站,它还存储敏感数据和文档

您应该尽可能少地存储敏感数据。特别是当您不确定如何保护这些信息的安全/私密时。例如,使用 OpenID 或其他东西进行身份验证。我真的很喜欢LightOpenID,因为它很简单。我创建了一个小示例项目/库来查看使用中的 lightopenId。它通过使用openID-selector简化了 OpenID 的使用。当您使用 OpenID 时,您还使用了安全的 OpenID 提供程序,密码也不会以纯文本形式通过网络传输,而是受 https/SSL 保护。

只有注册用户才能在网站上进行操作,并且只能对某些数据和文件进行操作。用户存储在 $_SESSION 变量中

是的,这就是会话的用途。

大多数页面都实现了一种基本的权限控制,但一些重要的数据库操作是通过 AJAX 调用的

您至少应该阅读OWASP 前 10 名。(不要停在10点。

AJAX 安全性实施得很差,因为任何聪明的人都可以篡改发送他们喜欢的任何 id 的请求,并以残酷的简单性删除记录

请参阅上一节。至少阅读 OWASP 前 10 部分。例如,很多人忽略的东西是CSRF

于 2012-06-20T11:49:02.300 回答