【问题标题】:POST PHP Security, how to preventPOST PHP 安全性,如何防止
【发布时间】:2016-04-29 10:16:18
【问题描述】:

在我当前的网站上,我在不同的 PHP 文件之间使用 Jquery 和 POST 请求来获取和更新信息。目前 om 不使用 SSL 或本地加密来隐藏标头中的纯文本,稍后会出现。

我想知道除了在使用之前清理和验证输入之外,如何防止客户端 POST 修改。 PHP 文档之间传递的一些信息很难预测,因此也很难验证。

你有什么诀窍吗? 我在想我可以使用 PHP 中的会话存储数据来验证它是发送请求的实际服务器。但我想会话数据可以通过多种方式“挖掘”?

【问题讨论】:

  • 错了,这就是所有的清理和验证输入。 @阿卜杜拉
  • 你传递了什么不应该被修改/不是用户输入?
  • @BradKent 该网站与 C# 中的 BOT 通信,随着用户的移动更新 sql 数据库中的用户“状态”(机器人稍后从网站的另一端读取)这是完成客户端一方面,因为 php 或多或少是“静态的”。用户准备就绪,JQuery 将 POST 请求发送到另一个更新数据库的 php。

标签: php security http post server


【解决方案1】:

选择一个:

  1. 您可以在请求之间的会话中存储数据(更多服务器内存)

  2. 您可以使用 HMAC(更多服务器 cpu)对发送到客户端的数据进行签名,然后在服务器上的下一个请求中检查它

现在没有理由不使用 HTTPS。现在有 3 个免费供应商。

【讨论】:

  • Four,实际上。 :)
  • @scottarciszewski cloudfront startssl、letsencrypt 和 ?​​span>
  • 沃通。我链接到列出它们的帖子。 ;P
【解决方案2】:

关于 HTTP 的两个重要方面 - 它本质上是无状态的,因此每个请求都独立于任何先前的请求,其次,更重要的是 - 它基于信任。一旦数据到达服务器(特别是 php 脚本),就不可能知道请求的来源以及数据是否可信。这意味着确保数据干净和安全的唯一方法是对其进行清理和验证。

由于对 HTTP 的固有信任,任何客户端都可以恶意伪造请求。有一些方法可以让这件事变得更难,并且根据您要保护的内容,您可以花费更多的时间和资源来做到这一点。根据您要完成的任务,这些步骤会有所不同。您是否试图阻止恶意用户窃取其他用户信息?您是否试图阻止他们访问您不应该访问的服务器上的数据(sql 注入、目录遍历)?您是否试图阻止用户冒充另一个用户(会话劫持)?您是否试图阻止用户注入恶意 javascript (xss)?根据您的目标和风险,您可能会投入时间和精力来尝试预防其中的一件或所有事情。

最后,HTTPS 只能缓解中间人攻击(可能是会话劫持),而不是上述任何场景,因此您仍然需要清理和清理 php 接收到的所有数据。

【讨论】:

  • 这是我一直在寻找的答案,ty @Scott
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-15
  • 2010-11-03
  • 2021-11-09
  • 1970-01-01
  • 2013-07-29
  • 2015-01-16
相关资源
最近更新 更多