在我的.NET Web应用程序中,我通常有一个Scripts文件夹,其中包含我所有的JavaScript文件 – 大部分时间都是jQuery,偶尔会出现某种类型的JavaScript库.
我通过名为Nexpose的扫描程序对我的某个网站运行漏洞扫描,它告诉我Scripts文件夹对全世界开放 – 这意味着未经身份验证的用户可以下载文件夹中包含的JavaScript文件,这是一个关键的漏洞.根据Nexpose,Scripts文件夹应限制为仅允许经过身份验证的用户访问它.这引出了我的第一个问题.
如何将Scripts文件夹限制为仅经过身份验证的用户?我尝试将一个web.config文件放入Scripts文件夹,并拒绝以这种方式访问所有未经身份验证的用户,但它无法正常工作.我能够自己确定这个,但是进入我网站的登录页面,但没有登录,然后键入https://mywebsite/scripts/menubar.js,确定它允许我下载menubar.js文件.
第二个问题 – 为什么这被视为漏洞?我试图通过这里的可能性来推理我的方式,但我没有想出太多的东西.它是一个漏洞只是因为乔3333 h4x0r可以找出我正在使用的各种库,然后可能使用已知的漏洞攻击它们?
更新
绝大多数答案似乎是,因为.js文件可以在客户端的浏览器上打开和读取,所以不应该存在漏洞.可能存在的唯一漏洞是,如果开发人员以某种不安全的方式使用.js文件(我不是这样).
因此,您的第一个问题的答案是:您不能也不想.如果您不希望用户访问,请将其从Web文件夹中取出.如果需要呈现您的网站,那么您希望任何人都可以访问它,以便您的网站可以正常呈现.
至于为什么它被认为是一个漏洞,谁说它是?我现在可以使用任何Facebook使用的JavaScript.或者,更重要的是,我可以去美国银行或大通的网站,并开始查看他们的JavaScript.如果我有一个帐户,我甚至可以看一下用户登录后使用的JavaScript.
您可能需要担心的唯一问题是您始终需要担心的事情:暴露不应公开的细节.我不确定你为什么这么做,但是将数据库密码放在JavaScript文件中显然不是一个好主意.除此之外,没有什么可担心的.