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

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


当前回答

不是最坏的,但也足以造成一些真正的损害。你会惊讶于这一点被忽视的频率有多高。特别是当人们使用这些流行的框架时,

yourwebapp.com/items/edit.php?id=4
yourwebapp.com/items/delete.php?id=4

不确定项的所有者是请求页面的人。 也就是说,你可以登录你的账户,然后在整个应用程序中编辑或删除任何人的项目。

一个简单的检查可以防止很多损坏。

$item = // find your item by the $_GET[ 'id' ];

if( $_SESSION[ 'user_id' ] != $item[ 'user_id' ] ){
  // kick em out they dont belong...
}

其他回答

从早期的在线商店来看:

在购物车的数量栏输入.1即可获得9折优惠。软件正确地将总成本计算为.1 * cost,人工包装订单只是忽略了包装数量前面的奇数“.”:)

有许多网站使用代理文件来传送图像或其他文件。没有检查路径的有效性。

So.

getfile.php ?文件 =../../../../ 等/ passwd

or

Getfile.php ?file=../index.php(包含所有密码的纯文本)

令人惊讶的是,还有很多网站仍然存在这个缺陷。getfile.php只需要谷歌,你就可以轻松地打开盒子了。

Windows 95和98有史上最严重的漏洞。如果你只是按下取消,你将以管理员权限登录:)在我爸爸的工作中度过了美好的时光:D

我曾经接手了一个系统的开发,这个系统在全国有200个客户在使用,它有硬编码的密码。是的,代码实际上写着:

if password = "a"

去年,我离开了一家汽车ERP公司,该公司数百个客户的服务器上都有相同的管理密码。我猜我走后他们没有全部换掉。

一些验证码是这样的:

public bool charsEquals(char[] input, char[] txt)
{
    for (int i = 0; i < Math.min(input.length; txt.length); ++i)
    {
        if (input[i] != txt[i]) return false;
    }
    return true;
}

像这样使用它:

if (charsEquals(inputPassword, requestedPassword))

看了YouTube上关于Tux和比尔·盖茨之战的搞笑视频后,我开始思考这个问题。当Tux没有密码进入微软大楼时。