- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
恶意网站所有者正在使用我们网站的内容来说 example.com
在他们的网站上说 spam.com
就像:
<?php
$url='https://example.com/';
// using file() function to get content
$lines_array=file($url);
// turn array into one variable
$lines_string=implode('',$lines_array);
//output, you can also save it locally on the server
echo $lines_string;
?>
我们想阻止我们网站的内容显示在他们的网站上,并将这些请求重定向到我们网站上的警告页面(到网页而不是图像)。
在进行了一些研发之后,我们尝试这样做:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https://example\.com/.*$ [NC]
RewriteRule ^(.*) https://example.com/404 [R=301,L]
</ifModule>
但它不起作用。我们做错了什么?
最佳答案
“盗链”和“网页抓取”是两种截然不同的东西。您用简化的 PHP 代码片段描述的是一种“网页抓取”甚至“克隆”的形式。这不会(或不太可能)在请求中生成 Referer
header ,因此不能通过简单地检查 Referer
(即 HTTP_REFERER
服务器变量),就像您对“热链接”所做的那样。
(您的示例 mod_rewrite 代码块“热链接”,而不是“抓取/克隆”。)
阻止此类请求的唯一方法是阻止发出请求的服务器的 IP 地址。例如,如果“恶意”请求来自 203.0.113.111
,那么您可以在 Apache 2.4 配置(或 .htaccess
文件)中执行类似以下操作来阻止此类请求:
<RequireAll>
Require all granted
Require not IP 203.0.113.111
</RequireAll>
但是,请求可能不是来自托管“克隆”内容的同一 IP 地址。您需要从服务器的访问日志中确定这一点。但更复杂的是,“攻击者”可能正在使用一系列 IP 地址,或者可以访问由不断变化的 IP 组成的僵尸网络。如果不访问更全面的防火墙,这很快就会变得几乎不可能阻止。
您可以尝试其他技术,例如从客户端代码发出到规范主机名的重定向。但是,更高级的“克隆”软件(和/或反向代理服务器)将“简单地”修改代码/URL 以阻止您的重定向尝试。
关于.htaccess - htaccess - 防止热链接/网页抓取并将攻击者的网页重定向到警告页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69172295/
我在看this SSL讲座。 Zeldovich 教授在这里说,如果连接是 http,黑客可能会让您相信您正在与 Amazon.com 对话,而实际上您正在与他的(黑客)服务器对话。 这是怎么发生的?
让堆栈溢出发布此问题的示例上下文。 我想他在这里尝试将其在 mac 和 windows 上的工作结合起来。 #If VBA7 And Win64 Then Private Declare PtrSaf
我正在使用 Python 3 的 operator 模块中的 attrgetter 函数来对对象列表(命中)进行排序。每个对象都有 12 个属性,我的排序函数可以输入其中任何一个属性,以便以任何需要的
我是一名优秀的程序员,十分优秀!