POST PHP安全性,如何预防


POST PHP Security, how to prevent

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

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

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

选择一个:

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

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

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

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

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

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