可以使用随机URL代替密码吗?[关闭]


12

使用像这样的随机字符构造的URL是否被认为“安全”?

http://example.com/EU3uc654/Photos

我想将一些文件/图片库放置在网络服务器上,这些文件/图片库只能由一小部分用户访问。我主要担心的是,搜索引擎或在我的网站周围乱窜的好奇的高级用户不应捡起这些文件。

我已经设置了一个.htaccess文件,只是为了注意到单击http://user:pass@url/链接在某些浏览器/电子邮件客户端上无法很好地工作,提示对话框和警告消息使我不太懂计算机的用户感到困惑。


不可以。您可以使用它,但不能用作唯一或主要的身份验证机制。
Andrew Smith

1
我已经多次尝试将其作为实验,并且每次链接在搜索引擎中结束时都会进行。我不知道如何,但我知道它会发生。
大卫·史瓦兹

您可能需要配置SSL以停止警告,可以从startssl.com获得免费证书,并且SSL不再需要大量计算(只要其配置正确)。
休伯特·卡里奥

此问题是经典的“非建设性”示例。我们不知道您有多重视图片的安全性。传达安全性重要性的唯一方法是通过实施授权方法来保护对这些图片的访问。您得到的是“答案”形式的“辩论论据”。但是它们都不是对现代安全性和技术含义的完整调查。您应该阅读平台提供的安全方法并评估每种方法对于您的情况的价值;完成此操作后,如果您还有其他疑问,请再次询问。
克里斯·S

Answers:


17

是否“可以”取决于图像的敏感程度。

如果您不使用SSL,则URL,HTML和图像本身将被缓存在用户的计算机上。这可能会泄漏,但我认为不太可能。

浏览器工具栏,尤其是由运行爬网程序的公司(例如Alexa和Netcraft)制造的浏览器工具栏,可以将访问的URL报告回其父站点,以使该机器程序以后可以爬网。

正确的身份验证(例如HTTP auth或POST变量)不应以这种方式缓存或报告回任何父网站。

另一种技术是使用唯一且短暂的URL。这样,即使它们确实泄漏,也没关系。当然,您必须不断更新新URL的合法用户。


+1用于提及浏览器工具栏。
休伯特·卡里奥

23

不,不是真的,这只是通过隐秘获得的安全性,根本不是安全性。在没有某种形式的实际保护的情况下,可以直接从Internet访问的任何内容都将被发现,索引和缓存。


10
难道不是所有的密码都只是为了掩盖安全性吗?
Winston Ewert

4
@WinstonEwert:密码本身与安全性无关,因为安全性与设计/实现的保密性有关,其晦涩难懂。以Apache基本身份验证为例,其设计/实现是完全开放的,供所有人查看。
user9517'7

10
废话-默默无闻是一切安全。重点是要到达那里,您需要一条不太可能让人猜到的信息。短语“通过隐蔽性实现安全”被过度滥用。随机的URL完全等同于在URL中放入“密码”。唯一的问题是-谁能看到这一点,我在评论中说的答案是“中间代理,而且它是http,所以任何人都可以窥探”
Bron Gondwana 2012年

1
apache config中的一个错误(或返回到默认配置),您的目录显示索引,并且所有文件和目录都在您的掌中,而不是密码。
休伯特·卡里奥

4
您说模糊的安全性“与设计/实现的秘密有关”。但很明显,随机URL与设计/实现的保密性无关。因此,随机URL不论其错误如何,都无法通过模糊将其归类为安全性。
Winston Ewert

6

他们将在此过程中记录在每个代理中。除非有人真正发布了链接,否则您将对好奇的高级用户和搜索引擎感到安全。

当然要注意生成器的随机性。

我猜您不是在这里寻找超高安全性。


如果有人发布该URL,则不会阻止他发布密码。像这样,总是可以“剔除”通过知识进行身份验证的因素。
Manuel Faux 2012年

@ManuelFaux:好的,如果是故意的。但这也可能是偶然的。例如,他可能使用一种工具来检查访问的URL,以查看它们是否被举报为恶意的。工具知道应该对密码保密。他们知道URL中的参数可能是敏感的。但是他们不知道URL中的路径可以。(例如,http Referer。)
David Schwartz

5

隐秘的URL方便一次性下载,但没有提供真正的保护。您需要注意,并不是所有的漫游器都遵守robots.txt文件,因此,如果网站中任何地方的链接都指向伪装的文件夹,那么它将被某些搜索引擎索引,并且一旦启动,就不会返回。

我建议您使用一个简单的基于.htaccess的身份验证系统来代替您的提议。


5

我想对混淆后的网址添加另一个可能更令人恐惧的观点,例如本例。即使您的网址没有意外共享,也可以通过以下方式将其提交给搜索引擎:

  • 访客的ISP。HTTP访问正在被收集,数据挖掘,有时甚至被ISP完全出售给第三方。
  • 访客的云存储。有许多服务可免费存储书签和历史记录,以在浏览器安装之间进行同步。除非它们像Mozilla一样对数据进行预加密,否则可能暗示相同的数据挖掘实践。

YMMV。


哦,是的-或者只是通过插件,以查找相关网站浏览器或允许用户分享笔记有关页
布隆冈瓦纳

2

过去,我使用类似的方法来允许用户在文档管理系统上创建共享空间。共享内容不是最高机密,因此系统不必是超级安全的。

我只是让每个用户URL都包含其电子邮件的过期时间戳记和MD5。

因此,URL看起来像:

http://my-url.com/1343689677-cba1f2d695a5ca39ee6f343297a761a4/

有了以上所述,如果用户在7月30日之前输入了电子邮件user@gmail.com,那么他们将是一个很好的选择。

不完全是军事级的安全,但确实做到了。


0

这与在URL中存储sessionID共享相同的漏洞。有人可以不小心将链接复制粘贴到其他人,而忘记在屏幕快照中对其进行审查,或者让某人查找该链接,因为它并不像密码那样带有星号。

另外,如果某些内容受密码保护,则通过登录您知道它是秘密。如果获得链接,则可以轻松地忘记它。

另一件事是删除用户特权。您可以删除用户,因此该用户不能再登录,但可以带有链接。您需要将其全部更改,并向所有人(删除的用户除外)发送新的URL。

我认为如果这些只是图像也不错。但是,如果这些图像是您确实不希望共享的图像;)那么我建议您使用更长的随机单词,更像是一个呈现的单词。

编辑:将?DO_NOT_SHARE_THIS_LINK添加到URL:http : //example.com/DO_NOT_SHARE_THIS_LINK/EU3uc654-this-should-be-long-beer/Photos ?DO_NOT_SHARE_THIS_LINK

这就是例如Kongregate嵌入在其他地方托管的游戏时所做的事情(它将身份验证凭据放入框架的url中)。顺便说一句,Kongregate还使用访客访问链接来发布未发布的游戏,就像您要使用的方式一样。


实际上,这比会话ID更糟糕,因为会话会在一段时间后过期。搜索引擎获取已登录会话ID的结果通常是显示无效链接/未登录会话。或者,如果服务器不在乎,它可能会同步许多用户的会话,并且其中一个用户登录时,他们都会同步。无论如何,还不如永久登录的URL糟糕:-)
korkman

当然,情况更糟,您可能还记得会话中的IP,因为您需要先登录才能在URL中获得sessid,然后如果IP更改就可以销毁会话。
Markus von Broady'7
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.