在我当前的网站上,我使用不同PHP文件之间的Jquery和POST请求来获取和更新信息。目前没有使用SSL或本地加密来隐藏标题中的纯文本,这将在稍后出现。
我想知道除了在使用之前清理和验证输入之外如何防止客户端POST修改。 PHP文档之间传递的一些信息很难预测,因此难以验证。
你的袖子有什么诡计吗? 我以为我可以使用PHP中的会话存储数据来验证它是发送请求的实际服务器。但我想会话数据可以被点击"在很多方面?
答案 0 :(得分:2)
选择一个:
您可以在请求之间的会话中存储数据(更多服务器内存)
您可以使用HMAC(更多服务器cpu)对发送到客户端的数据进行签名,然后在服务器上的下一个请求中进行检查
这些天没有理由不使用HTTPS。现在3个免费供应商。
答案 1 :(得分:1)
关于HTTP的两个重要事项 - 它本质上是无状态的,因此每个请求都独立于之前的任何请求,其次,更重要的是 - 它基于信任。一旦数据到达服务器(特别是php脚本),就无法知道该请求的来源以及数据是否可信。这意味着确保数据清洁和安全的唯一方法是清理和验证数据。
由于对HTTP的固有信任,任何客户端都可以伪造具有恶意意图的请求。有很多方法可以使这更难,并且根据你想要保护的内容,你可以花更多的时间和资源来做到这一点。根据您要完成的任务,这些步骤会有所不同。您是否试图阻止恶意用户窃取其他用户信息?您是否试图阻止他们访问服务器上不应该访问的数据(sql注入,目录遍历)?您是否试图阻止用户冒充其他用户(会话劫持)?您是否试图阻止用户注入恶意javascript(xss)?根据您的目标和风险,您将投入时间和精力来尝试防止这些事情中的一个或全部。
最后,HTTPS只能减轻中间人攻击中的人(可能是会话劫持)而不是上述任何一种情况,所以你仍然需要清理和清理你的php收到的所有数据。