安全性和隱私權

建立表單時,您要處理的是使用者資料。最重要的是,您必須確保使用者資料的隱私和轉移安全無虞。來看看可行做法。

首先,請務必盡量減少要求的資料。因此請勿要求使用者提供不需要的資料,也不要擔心您需要的所有資料。資料越少,風險越低、成本越低,責任則越少。 此外,減少表單的欄位數量,會簡化表單複雜性、較容易填寫,且能降低放棄率。

一律使用 HTTPS,尤其是含有表單的網頁。使用 HTTPS 時,當您從伺服器傳出及返回伺服器時,資料均經過加密。

假設您正坐在咖啡館裡,使用公用 Wi-Fi 網路。 您開啟了一個電子商務網站,並填寫信用卡資訊購物。 如果網站使用 HTTP,則任何具備相關技能的使用者,只要連上相同的公用 Wi-Fi 網路,即可看到您的信用卡資訊。 如果網站使用 HTTPS,資料會經過加密,防止任何人想存取。

你也應在網站上將所有 HTTP 要求重新導向至 HTTPS。 進一步瞭解如何將所有流量重新導向至 HTTPS

協助使用者保障資料隱私

第一個模組中,您已瞭解以下兩種轉移資料的方法:使用 GET 要求和使用 POST 要求。

透過 GET 要求,表單資料會以查詢字串的形式包含在要求網址中。如果您提交的表單使用 GET 要求,瀏覽器會將要求網址 (包括表單資料) 新增至您的瀏覽記錄中。如要查詢過去的表單,例如搜尋表單,使用起來相當便利。完全不適合,如果您提交了機密資料,且凡是可存取您瀏覽器記錄或區域網路的使用者,都能看見這項資訊。

針對所有可能提交個人或機密資料的表單,使用 POST 要求。 這樣一來,只有處理資料的後端指令碼才能看到資料。

如何直接在瀏覽器中儲存與處理個人資料? 您可以使用用戶端儲存空間,例如 localStorage,將個人資料儲存在瀏覽器中。就隱私權而言,這個做法不太理想。再次提醒您,凡是可存取您瀏覽器的使用者,都能閱讀這項資訊。 請只儲存已加密的個人資料值。

確保使用者能安全地註冊及登入

使用者帳戶驗證是隱私權與安全性方面的複雜問題。建議您使用第三方識別資訊提供者,而非建構自己的安全驗證系統。

進一步瞭解帳戶驗證及密碼管理的最佳做法

協助使用者存取個人資料

許多區域都有資料保護和隱私權的相關法律和法規,包括加州的 CCPA 和印度的 PDPA。歐盟 (EU) 境內提供的每個網站都必須遵守《一般資料保護規則》(GDPR),即使網站不位於歐盟地區亦然。

GDPR 制定了規範,以負責收集及處理歐盟地區使用者的個人資訊。 必須取得同意聲明才能處理個人資料,使用者隨時可以要求您儲存的個人資訊,而您必須正式宣布資料外洩。這對使用者來說是很好的事,有助於確保使用者的隱私權受到尊重。進一步瞭解 GDPR

請務必向使用者說明您計劃處理個人資料的方式。 透明度是信任的關鍵。使用者應隨時可以存取、修改及刪除您為他們儲存的所有資料。

確保使用者可以更新個人資料

讓使用者輕鬆更新個人資料,包括密碼、電子郵件地址和使用者名稱。在使用者儲存個人資料有所變更時通知使用者,並確保使用者可以撤銷變更。例如在使用者變更電子郵件地址後,傳送電子郵件至舊和新的電子郵件地址。

讓使用者輕鬆刪除自己的帳戶 (包括所有相關資料及關聯資源) 以便下載資料。刪除帳戶是某些地區的法律規定

需要額外的驗證步驟,例如重新輸入目前密碼才能查看或變更網站上的個人資訊。

詳情請參閱網頁應用程式隱私權最佳做法

確保所有資料處於良好狀態

在前一個單元中,您已瞭解前端的驗證作業。前端驗證很重要,但使用者可能仍可提交無效的資料。在後續步驟中,您還必須先在後端驗證資料,再將資料儲存到資料庫。這可以確保資料庫中沒有儲存任何無效資料。

驗證程序可確保資料格式有效,但您還是不信任使用者輸入的資料。如何安全地輸出資料?如要防止跨網站指令碼處理 (XSS) 並且確保所有資料安全地加入 HTML 中,您必須先清理資料再輸出。

進一步瞭解如何在輸出前清理資料,並在可能的情況下使用 Sanitizer API

確保所有提交內容都是真人

為了保護資料,您可以有多種選項來防止機器人提交垃圾內容。

第一個選項是使用 reCAPTCHA 等服務來區分實際使用者與機器人。您必須在網頁中加入 JavaScript 程式碼片段,並在「提交」按鈕中加入額外屬性。

reCAPTCHA 會執行多項檢查,確認你是否為真人。舉例來說,系統可能會要求您辨識圖片。 自動化軟體 (例如機器人) 無法達成這些挑戰,也無法提交表單。

蜂蜜罐

另一種做法是使用「Honeypot」:隱藏起來的表單欄位。人類不會看到蜂蜜田,但機器人會幫忙填滿。處理指令碼會在後端檢查欄位是否已填寫完成。 如果是的話,則提交的內容可能來自機器人,可以忽略。

另外,Akismet 等服務都能協助您防範垃圾內容。Akismet 篩選器的運作方式是結合所有參與計畫的網站擷取的垃圾內容資訊,然後使用這些垃圾內容規則封鎖日後的垃圾內容。Akismet 的內容安全無虞,可捕捉大部分的垃圾郵件。

隨堂測驗

測驗您對安全性和隱私權的相關知識

如要使用表單轉移個人資料,下列何者是偏好方法?

POST 要求。
GET 要求。
HTTPS
載著電信業者的鴿子。

如何防範垃圾內容?

Honeypot 表單欄位。
只提供素食形式。
垃圾服務。
接頭

資源