簡體   English   中英

安全處理純文本密碼…

[英]Handle Plaintext Passwords… Safely

我正在一個網站上進行簡明扼要地從網站B輸出數據的網站,這比手動登錄並在網站B上查找所有內容所需的速度更快。

它需要任何用戶都可以使用。 目前它可以使用,但是要求用戶使用來自網站B的憑據登錄到我的網站。網站B沒有API,這是我想到的唯一方法。 顯然,這並不理想,因為用戶名和密碼是通過get請求以明文形式發送到我在網站上擁有的php腳本的,並進行了一些網絡抓取。 我還可以選擇將密碼(以純文本格式)存儲在用戶cookie中,以使用戶保持登錄狀態。

我不是親自為他們存儲密碼,但是任何開發人員都可以更改其后端,以在有惡意意圖的情況下以純文本格式存儲密碼。 由於我沒有惡意的意圖,並且歸結為用戶是否信任該網站,所以我更擔心攻擊者可能會從用戶Cookie或請求中獲取這些密碼。

我已經考慮過哈希或加密,但是兩者都要求它能夠輕松地將它們轉換回純文本密碼(允許任何攻擊者像我的系統一樣容易地找到它),以便可以將它們輸入到網站B中進行網絡抓取。

這是一個難題,老實說,我想不出更好的解決方案。 有什么事情可以做的,至少可以使它更加安全嗎?

簡短的答案是,您不能安全地執行此操作:

  • 用戶需要使用其憑據信任您才能登錄到遠程網站,而大多數情況下不會。 本質上,您所做的與網絡釣魚相同。 作為最終用戶,我如何使用我的憑據知道您在做什么?
  • 如果您的服務器發生違規行為,並且所有憑據泄漏,或者將代碼注入到腳本中,該腳本將登錄信息發送到黑客的數據庫,則您將承擔責任。 加密增加了一小層安全性,但是當用戶首次登錄時不需要私鑰時,應用程序將需要使用純文本以及登錄數據來訪問私鑰。
  • 您沒有使用API​​,而是在抓取另一個網站,這意味着HTML的任何細微更改都可能破壞您的網站。
  • 遠程網站可以將代碼注入您的網站。
  • 遠程網站會將許多用戶的許多登錄記錄到您服務器的IP上,並可能標記您和/或您的用戶帳戶的可疑活動。
  • 您的服務器實質上是用於登錄的代理服務器,這意味着登錄失敗也將被注冊到服務器的IP中。 同樣,這可能會使您和您的用戶被標記或列入黑名單,並且還使您有可能使用您的服務器來強行登錄到遠程服務器。
  • 如果遠程服務器曾經實施多因素身份驗證,則將增加一層復雜性,並且如果使用Webauthn(例如U2F),則用戶將無法通過您的服務器登錄。

這正是API存在的原因。 如果不存在,請聯系遠程網站並嘗試說服他們,為什么擁有一個很重要。 如果對您確實很重要,請提供編碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM