繁体   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