我正在开发一个需要密码保护下载的项目,但我不确定如何实现它。如果目标文件具有特定扩展名(.exe,.mp3,.mp4等),我想提示用户输入用户名和密码。关于这个的任何想法?
我在Windows XP上使用Python 26。
答案 0 :(得分:2)
最好在Web服务器级别实现。
如果您使用的是Apache,可以通过将您想要保护的文件放在一个需要用户身份验证的htaccess
文件的目录中来完成。
然后,在Python脚本中实现HTTP Basic Auth以下载文件。确保使用SSL连接; basic auth通过明确的线路发送用户密码。
答案 1 :(得分:1)
使用HTTP的basic authentication(显示在我从客户端引用的网址中):
WWW-Authenticate: Basic realm=XXXX
(其中XXXX是URL的哈希值,
例如使用MD5或SHA1,使其基本上是唯一的文件)然后用户需要在他的浏览器中输入用户名和密码 使用显示的简单算法将它们发送回您正在实施的服务器 在该URL处,即:
导入base64 base64string = base64.encodestring('%s:%s'%(用户名,密码))[: - 1] req.add_header(“授权”,“基本%s”%base64string)
当请求中存在Authorization标头时,解码base64字符串
它会在'Basic '
之后显示,并检查它是否包含您想要的username:password
当然,您可以使用更复杂的身份验证,但这可能会让您开始,除非用户的连接可以(或者您怀疑)被邪恶的第三方“嗅探”(在这种情况下,您仍然希望使用HTTPS) ,以便基本身份验证再次变得正常; - )。