2016-01-22 34 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 –