阻止HTTP基本身份验证显示图像提示

Jac*_*ckW 8 html

如果我在页面上有来自不同域的图像,并且该图像受HTTP基本身份验证保护,则浏览器将向用户显示身份验证对话框,如下所示: Auth Dialog 鉴于该网站是一个论坛,因此包含大量用户生成的内容,恶意用户很容易添加这样的图像,然后可能收获一两个人的登录凭据他们的站点凭据进入对话框.

有没有办法防止在没有使用图像主机白名单的情况下显示凭证提示(不理想,因为它对用户非常严格)或确保图像在允许之前可以访问(可以解决)?

Jac*_*ckW 5

如果您将该crossorigin="anonymous"属性添加到图像,它将不再提示输入凭据,但这也意味着不会发送任何cookie或缓存凭据(在我的情况下这无关紧要).

但请注意,这会将其限制为仅使用Access-Control-Allow-Origin标题提供的图像,必须将其设置为*页面的原点.如果标题被省略或不正确,则不会渲染图像,而是会显示损坏的图像错误.这使得这个解决方案相当无用,但遗憾的是似乎没有替代方案.

  • @AmitK遗憾的是,显示的图像必须支持CORS,因此它们必须包含`Access-Control-Allow-Origin`标题,设置为`*`或页面原点.似乎没有解决方法.我会更新我的答案. (2认同)