你见过的最糟糕的安全漏洞是什么?为了保护罪犯,限制细节可能是个好主意。

不管怎样,这里有一个关于如果你发现了安全漏洞该怎么办的问题,还有一个关于如果公司(似乎)没有回应该怎么办的问题。


当前回答

我有Joe X以前的家庭地址,需要知道他在同一城市的新地址,但没有办法联系到他。我估计他每天都会收到一堆邮购目录,所以我随意拨打了See’s Candies的800电话(与维多利亚的秘密、瑞士殖民地或任何其他大型邮寄公司不同):

我:“嗨,我是Joe x。我想我已经在你的邮件列表中出现过两次了,我的旧地址和新地址都有。你的电脑显示我的地址是[旧地址]还是[假地址]?”

接线员:“不,我们给你看[新地址]。”

其他回答

我曾经忘记删除“管理员登录页面”。该页面只是绕过LDAP登录并获得所有权限。它可以对客户的银行账户做任何事情。我非常非常担心。幸运的是,没有人知道URL。

意外地将数据库根密码提交给源代码控制。这很糟糕,因为它是Sourceforge上的源代码控制。

不用说,密码很快就改了。

一个在线文档管理器怎么样,它允许设置你能记住的所有安全权限……

直到你进入下载页面……download.aspx吗?documentId = 12345

是的,documentId是数据库ID(自动递增),您可以循环每个数字,任何人都可以获得所有公司文档。

当这个问题被提醒时,项目经理的回答是:好的,谢谢。但之前没有人注意到这一点,所以就让它保持现状吧。

不过这还不是我见过的最严重的安全漏洞。但这至少是我自己发现的最糟糕的情况:

一个非常成功的在线有声读物商店在成功认证后使用cookie存储当前用户的身份信息。但你可以很容易地在cookie中更改用户ID,并访问其他账户并在这些账户上购物。

我希望你能发现这里的问题。(事实上,大错特错):

String emailBody = "";

for (int i = 0; i < subscribers.Count; i++)
{
    emailBody += "Hello " + subscribers[i].FirstName + ",";
    emailBody += "this is a reminder with your account information: \n\n:";
    emailBody += "Your username: " + subscribers[i].Username + "\n";
    emailBody += "Your password: " + subscribers[i].Password + "\n";
    emailBody += "Have a great day!";

    emailDispatcher.Send(subscribers[i].EmailAddress, emailBody);
}

最后一个接受者是最幸福的;)