2017-08-03 146 views
2

我是編程界的新手,我已經對使用HTML-AJAX-PHP-MySQL的基本CRUD類型的Web應用程序有了足夠的瞭解。我一直在學習編碼作爲業餘愛好,結果只使用WAMP/XAMP設置(本地主機)。我現在想冒險使用VPS並學習設置它並最終開放一個供公衆使用的新項目。HTTPS是否使POST數據加密?

我注意到,無論何時我使用AJAX或甚至定期POST將表單數據發送到我的PHP文件,如果我打開Chrome調試器並轉到「網絡」,我可以看到正在發送的數據,後端PHP文件正在向其發送數據。

如果用戶可以看到這個,他們可以攔截這些數據,修改它,並將它發送到相同的後端PHP文件?如果他們創建了自己的簡單HTML頁面並將POST數據發送到我的PHP後端文件,它會工作嗎?

如果是這樣,我該如何避免這種情況?我一直在閱讀使用HTTPS,但我仍然困惑。將使用HTTPS意味着我將不得不以任何方式改變我的代碼?

+1

請求/響應被加密傳輸。它在任何一方都被解密。 –

+0

所有這些都是自動完成還是需要更改我的代碼? – Bruno

回答

4

瀏覽器顯然會知道它正在發送什麼數據,並且它將在調試器中顯示它。 HTTPS加密傳輸中的數據,遠程服務器在收到時將對其解密;即它防止中間的任何第三方能夠讀取或操作數據。

這可能會對您(或者可能不是)產生影響,但與您的服務器的通信僅通過HTTP(S)進行。這是一個簡單的文本協議。任何人都可以隨時隨地向您的服務器發送任意HTTP請求。 HTTPS加密與否。如果您擔心有人操縱通過瀏覽器調試工具發送的數據......您的擔憂完全是錯誤的。有很多簡單的方法可以將任意製作的HTTP請求發送到您的服務器,而無需進入您的站點。

您的服務器只能依賴收到的數據,並且必須嚴格驗證給定數據的優點。試圖以任何方式鎖定客戶端是徒勞的。

+0

謝謝。假設我想從數據庫中刪除一個用戶,在POST數據中發送用戶名(u:20),那麼我的MySQL查詢是'DELETE FROM WHERE id =?'(參數化查詢)。那麼有人可以發送一個隨機用戶標識到後端?我不能在這裏使用SESSIONS,因爲該頁面是管理員正在刪除用戶的頁面。 – Bruno

+1

是的,任何人都可以刪除任何人。您*需要*某種形式的身份驗證,尤其是對於全能的管理頁面***。會話是一種典型的方式。爲什麼管理員不可能這樣做? – deceze

+0

我選擇用戶從'