簡體   English   中英

非常非常簡單的Web驗證供個人使用

[英]very, very simple web authentication for personal use

我正在使用Bottle編寫一個非常簡單的后端API,這將使我可以遠程檢查正在進行的進程。 我是唯一會使用此服務的人,或者更確切地說,我非常想成為唯一使用此服務的人。 這是一個非常簡單的RESTish API,它將在幾個端點上接受GET請求。

我從未真正進行過任何網絡開發,我想做一些簡單而合理的事情。 即使這樣,也可能是不適當的警告。 無論如何,我的非常基本的想法是在服務器上使用https,並使用基本上是硬編碼的密鑰進行身份驗證。 它會以純文本格式存儲在服務器和客戶端上,但是如果任何人都可以訪問其中任何一個,那么我就會遇到另一個問題。

這種方法有什么明顯的錯誤嗎?

SO評論回答了您的問題

您需要使用base64login:password對進行編碼,例如dGVzdDp0ZXN0test:test

如果使用密碼驗證,則需要將密碼存儲在服務器中,以便可以驗證從客戶端發送的密碼是否正確。

在您的特殊情況下,您將使用基本身份驗證,因為這是最簡單的。 通過HTTP / HTTPS的基本身份驗證使用base64對密碼進行編碼,但這不是保護措施。 Base64是兩種編碼方式,您可以編碼和解碼大量數據,而無需任何秘密。 Base64編碼的目的是將任何類型的數據(甚至二進制數據)編碼為字符串。

當您輸入密碼並通過HTTPS發送密碼時,HTTPS隧道可避免任何人看到您的密碼。

如果有人訪問您的服務器並讀取您用來檢查輸入的密碼是否有效的密碼“副本”,則會出現另一個問題。 最好的保護方法是對其進行哈希處理。 哈希是一種單向編碼系統。 這意味着任何人都可以哈希密碼,但是您不能取消哈希數據塊來發現密碼。 破解哈希密碼的唯一方法是蠻力破解。 我建議使用MD5或SHA哈希。

因此,使其變得簡單。 客戶端使用http / https基本身份驗證,因此您將使用base64編碼密碼。 通過標頭而不是URL傳遞它。 該服務器將在數據庫或您想要的任何位置包含密碼的急速副本。 后端代碼將接收http請求,獲取密碼,base64對其進行解碼,然后對其進行哈希處理。 散列后,您將檢查其是否等於存儲在服務器中的副本。

就是這個。 希望能幫助到你!

暫無
暫無

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

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