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

Html 阻止HTTP基本身份验证显示图像提示,html,Html,如果页面上有来自不同域的图像,并且该图像受HTTP基本身份验证保护,浏览器将向用户显示身份验证对话框,如下所示: 鉴于该网站是一个论坛,因此包含大量用户生成的内容,恶意用户很容易添加这样的图像,然后潜在地获取一两个对其感兴趣的人的登录凭据,并在对话框中键入他们的网站凭据 是否有任何方法可以防止在不使用映像主机白名单(不理想,因为它对用户的限制非常严格)或在允许映像之前确保映像可访问(这可以解决)的情况下显示凭据提示?如果将crossorigin=“anonymous”属性添加到映像,它将不再提

如果页面上有来自不同域的图像,并且该图像受HTTP基本身份验证保护,浏览器将向用户显示身份验证对话框,如下所示:

鉴于该网站是一个论坛,因此包含大量用户生成的内容,恶意用户很容易添加这样的图像,然后潜在地获取一两个对其感兴趣的人的登录凭据,并在对话框中键入他们的网站凭据


是否有任何方法可以防止在不使用映像主机白名单(不理想,因为它对用户的限制非常严格)或在允许映像之前确保映像可访问(这可以解决)的情况下显示凭据提示?

如果将
crossorigin=“anonymous”
属性添加到映像,它将不再提示输入凭据,尽管这也意味着不会发送cookie或缓存的凭据(这在我的情况下并不重要)


但是请注意,这将其限制为仅使用
访问控制允许原点
标题提供的图像,该标题必须设置为
*
或页面原点。如果标题被省略或不正确,图像将不会被渲染,而是显示一个损坏的图像错误。这使得此解决方案毫无用处,但遗憾的是,似乎没有替代方案。

由于这是浏览器功能,因此无法覆盖。您可以将图像单独放在打开位置并访问相同的图像。问题的根源在于您引用了其他人不希望访问的图像。这种跨域引用是有问题的。正如你所看到的,它们会导致严重的问题。简而言之:你不应该引用这样的图片,你应该只在你的网站上发布你持有的内容。但值得注意的是,不幸的是,这并没有得到很好的支持。它只是在IE11中添加的,Opera根本不支持它。@NiettheDarkAbsol 4 mayor浏览器已经支持它了。我说值得。哦,绝对值得添加属性,毫无疑问。但这仍然值得注意。当我在图像标记中添加此属性时,它甚至不会呈现有效的图像。请告诉我您是如何在代码中实际实现的。@很遗憾,显示的图像必须支持CORS,因此它们必须包含
Access Control Allow Origin
标题,设置为
*
或页面原点。似乎没有解决这个问题的办法。我会更新我的答案。