默默无闻的安全性:URL怎么样?

时间:2010-10-24 07:10:57

标签: security url security-by-obscurity

首先,从幼稚的角度来看问题:

我有一个WebApplication,其中包含Products?id=123等产品的网址。假设我的管理页面可以从Products?id=123&editable=true到达。

如果我认为没有人会尝试启用editable参数,因此不需要任何其他安全机制来保护此页面,那就是安全隐藏,以及那不是个好主意,对吧?

-

在我的实际案例中,它稍微有点微妙:允许任何人知道我的管理URL是否有任何危险?例如,在使用XSL时,我想写一下:

<xsl:if test="/webAlbums/mode/@admin">
    (compute edit link)
</xsl:if>

但潜在的攻击者在'重要'页面中找到弱点不是更容易吗?

4 个答案:

答案 0 :(得分:1)

通过默默无闻的安全几乎没有安全保障。不要指望它。

您应该建立一个身份验证系统,阻止人们通过实际安全性来使用管理页面。

对于知道您的管理网址的人来说,只要您的管理页面受到保护并且网址中没有显示敏感数据(例如数据类型的内部表示,某些内部ID),就应该没问题。数据等)。

答案 1 :(得分:0)

你实际上很幸运,因为你所建议的实际上并不是默默无闻的安全性,而是一种名为Obscure URL的完美声音安全技术。

要使其正常工作,您需要确保URL的一部分与强密码一样难以猜测。只要页面无法编辑,除非该部分是正确的,否则在何处包含它并不重要。

不安全的例子:

Products?id=123&editable=true

安全示例:

Products?id=123&editable=true&edit-token=GgSkJSb6pvNT
Products?id=123&edit=GgSkJSb6pvNT
edit/GgSkJSb6pvNT/Products?id=123
GgSkJSb6pvNT/Products?id=123

答案 2 :(得分:0)

我不做网络编程,所以我可能会有点偏离基础,但我认为有一些事情需要考虑:

  • 与任何其他身份验证系统一样,如果您在没有HTTPS的情况下访问管理页面,则页面请求(包含有效的“密码”)将以明文形式发送。

  • 除非另有配置,否则浏览器将保留管理页面的历史记录和缓存。这使得秘密URL更容易被攻击者或使用您机器的任何人使用。

  • 与所有密码一样,如果秘密网址足够简单,则有可能被强制使用。像&editable=true这样的东西并不会让我感到安全。

但如果处理得当,这应该和传统的身份验证系统一样安全。

答案 3 :(得分:0)

丹尼尔·米斯勒(Daniel Miessler)在他的博客中给出了another element of response,这是我写这个问题时想到的但却无法表达的:

  
      
  • 作为图层的晦涩使得已经很好防御的系统更难以定位,从而改善了整体安全状况。
  •   
  •   安全通过晦涩意味着,一旦有针对性,系统就会毫无防御能力,即所有安全都来自保密。
  •   

隐藏未经身份验证的客户端的配置URL会在标准身份验证机制之上添加安全性。

如果破解者不知道门在哪里,他们就不太可能试图强迫它!

这是他在changing its SSHd端口到24时所做的事情,端口扫描程序将找到SSH服务器,但自动暴力脚本只会尝试默认的。

结果?在一个周末之后,端口22上的 18,000 攻击和端口24上的 5 (他让两个端口都打开以允许比较)。