使服务器文件名不明确有助于安全吗?

时间:2015-11-06 20:01:14

标签: php server

我正在处理一个系统,该系统的服务器调用文件名不明确(对于移动应用程序)。例如,如果我有用户注册调用,则可以从r.php或df.php(随机)调用该文件。逻辑(最初构建系统时)是,这有助于防止人们猜测文件名和滥用服务器调用。

这真的有用吗?所有人需要做的是启动数据包跟踪或使用反编译器来查找正在调用的HTTP请求。 (实际上,任何想要滥用HTTP请求的人都知道如何做这些中的一个或两个"技巧")

最重要的是,随着文件名的增长,保持所有文件名的顺序变得很麻烦。

让我们的注册文件只是registration.php或newUser.php是不好的做法吗?

1 个答案:

答案 0 :(得分:1)

短片。通过默默无闻的安全不是安全[1]

首先,文件名与发现请求URI几乎没有关系,请求URI 始终纯文本中对客户端UA可见。所以没有数据包跟踪或" 反编译器"这里有必要通过HTTP发现请求/响应数据。

其次,当你想到在登录系统中你想要防止的实际滥用类型时(即暴力攻击,自动注册等...... ),它们都不能通过随机化终点URI来防止,因为它最终总是必须在一天结束时对客户端可见。你是否试图直接将它们与它们混淆起来对你没有好处。主要是因为你成功隐藏的人不是你害怕攻击你的人(,即不是那些实际上可以对你的系统造成任何伤害的人)。所以你做这件事并没有完成任何事情。

相反,你想要的是可衡量的秘密(并且秘密与安全工程实践中的晦涩感有很大的区别),无论其知识如何,都可以阻止或防止对系统的篡改实施[2]

举个例子,一个限速登录系统。通过限制特定用户帐户或特定IP /范围的登录尝试次数,您可以有效地阻止蛮力攻击的努力,足以阻止攻击者甚至尝试。他们知道这个速率限制的事实并不一定能让他们在试图绕过您的安全性时更进一步,因为速率限制仍然完全由您的系统控制。然而,通过隐藏端点URI,他们需要做的就是检查HTTP请求/响应标头以找到该URI并且您仍然没有防御。

[1] https://en.wikipedia.org/wiki/Security_through_obscurity

[2] https://security.stackexchange.com/questions/44094/isnt-all-security-through-obscurity