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

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


当前回答

public class AuthenticationServlet extends HttpServlet
{
    private String userName;
    private String password;

    protected doPost(HttpServletRequest req, HttpServletResponse resp)
           throws ServletException, IOException
    {
        userName = request.getParameter("userName");
        password = request.getParameter("password");
        authenticateUser(userName,password);
        ......
    }
}

显然,正如有人在自动化负载测试中发现的那样,单例和缺乏同步会导致安全问题。

其他回答

当我使用Colloquy (IRC)时,密码字段会弹出,但我仍然在主屏幕上集中,所以当我按下enter键时,全世界都知道我的密码,而我却没有意识到。

其中一个最简单,但真正值得付出代价的是:

使用PayPal等引擎的支付系统可能存在缺陷,因为在支付成功后,PayPal的响应没有得到应有的检查。

例如:

我可以进入一些CD购买网站,向购物车中添加一些内容,然后在结帐阶段,页面上通常会出现一个表单,其中包含paypal的字段,以及“支付”的提交按钮。

使用DOM编辑器,我可以进入“live”表单,将值从£899.00更改为£0.01,然后单击提交…

当我在PayPal的时候,我可以看到金额是1美分,所以我支付了,PayPal将一些参数重定向到初始购买网站,该网站只验证诸如payment_status=1等参数,而不验证支付的金额。

如果没有足够的日志记录,或者产品是自动分派的,那么成本就会很高。

最糟糕的一类网站是提供应用程序、软件、音乐等的网站。

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

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

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

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

在一些Unix机器(当然是所有的SunOS)上,您可以将setuid shell脚本链接到一个名为“-i”的文件。 shell脚本将文件名解释为它的第一个参数,并运行"sh -i" =一个交互式shell,并获得setuid文件所有者的许可。

因为大多数setuid shell脚本都是以根用户身份运行的,以便允许您执行一些需要根用户权限的操作,比如弹出CD或加载磁带。这意味着在20世纪90年代,在大多数大学的Unix机器上获得管理是很简单的。

在签名代码中:

System.setSecurityManager(null);

(你可以通过谷歌代码搜索。)从进程中运行的所有代码中删除所有Java安全限制。可能没有想清楚。