在使用 Firefox 浏览我的论坛时,我注意到一个恶意用户发布了一张图片(通过盗链,而不是通过上传到我的服务器),其扩展名.png符合论坛规则(仅允许 .png、.gif、.jpg、. bmp 等)。但是,用户使用.htacess的方式是弹出一个 HTTP 基本身份验证框,要求用户重新进行身份验证。
这可以欺骗我的一些用户将他们的凭据输入到框中,而实际上身份验证框是用于托管图像的服务器的。
我怎样才能防止这种攻击?
在使用 Firefox 浏览我的论坛时,我注意到一个恶意用户发布了一张图片(通过盗链,而不是通过上传到我的服务器),其扩展名.png符合论坛规则(仅允许 .png、.gif、.jpg、. bmp 等)。但是,用户使用.htacess的方式是弹出一个 HTTP 基本身份验证框,要求用户重新进行身份验证。
这可以欺骗我的一些用户将他们的凭据输入到框中,而实际上身份验证框是用于托管图像的服务器的。
我怎样才能防止这种攻击?
我想我知道你怎么了。实际上,这正是我对 StackExchange 个人资料中“关于我”部分中的图像所做的事情。这是一个.php获取访问者的一些信息(IP 地址、浏览器类型、访问者是否让笑脸开心等)的文件。我只是重写了 URL 以显示实际上是同一个文件的两个不同图像.php。
如果您允许人们热链接文件(尤其是浏览器自动请求的文件,例如图像),那么您对此无能为力。用户的浏览器将连接到另一台服务器(图像托管在该服务器上),并从那里请求图像。对于浏览器,链接真正指向.png图像。它无法区分,您的服务器/站点也无法区分。
这是一种社会工程攻击,攻击者希望用户使用浏览器弹出混合内容的身份验证对话框。可悲的是,Firefox 是其中一种浏览器。在很多情况下,如果用户在站点 A 上看到一个登录对话,该对话实际上是请求从站点 B 加载的内容,则用户很可能会输入站点 A 的凭据(您的站点)并且他的帐户被盗。
解决方案:您必须禁止此类热链接内容并将任何热链接图像重新上传到您的服务器,然后从那里在您的网站中提供它们。
(截至 2018 年 3 月,Firefox不再受此问题的影响,并且像 Chrome 一样只会显示加载资源的弹出窗口在同一个域上)
这称为 403 网络钓鱼攻击,您可以防止它的唯一方法是防止用户生成的内容包含指向在您的页面上呈现的外部资源的链接,例如图像。幸运的是,这不是一种特别常见的攻击,但它可能令人担忧,特别是如果用户在您的站点上使用的凭据比平均水平更有可能具有高价值。
您可能能够找到中间立场,例如将攻击者无法控制的已知外部资源列入白名单,例如 imgur 或 flickr。但是,如果您希望允许从任意域获取资源,那么您将始终容易受到这种攻击,至少在浏览器制造商为我们提供一些新选项来控制不同来源的 HTTP 身份验证挑战之前是这样。
如果有人能够更改您服务器上的 htaccess - 条目,您可能被黑了。
png 可能包含恶意代码;你能粘贴输出
$ string strangefile.png
在服务器上执行时?可能很有趣
他们对 .htaccess 屏蔽能做的最糟糕的事情是什么?有什么办法可以预防吗?
他们可以访问您的服务器,如果 $someone 能够在您的服务器上本地更改文件,则很可能会受到损害;想象一下自己,然后会发生什么