2016-01-22 35 views
0

在我目前的网站上,我使用不同PHP文件之间的Jquery和POST请求来获取和更新信息。目前不使用SSL或本地生成的加密来隐藏标题中的纯文本,这些将在稍后发布。POST PHP安全性,如何防止

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

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

+0

错误,这是所有的消毒和验证投入。 @Abdulla –

+0

你通过什么不应该修改/不是用户输入? –

+0

@BradKent该网站与C#中的BOT通信,在用户移动时更新sql数据库中的用户“状态”(该机器人稍后从该网站的另一侧读取)这是客户端完成的,因为php或多或少“静态的”。用户已经准备好了,JQuery将POST请求发送给另一个更新db的php。 –

回答

2

选择一个:

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

  2. 您可以登录发送到使用HMAC(更多服务器CPU)客户端的数据,然后检查服务器上的下一个请求

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

+0

[Four](https://paragonie.com/white-paper/2015-secure-php-data-encryption)。 :) –

+0

@scottarciszewski cloudfront startssl,letsencrypt和? WoSign。 –

+1

WoSign。我链接到列出他们的帖子。 ; P –

1

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

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

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

+0

这就是我正在寻找的答案,@Scott –