gpt4 book ai didi

.htaccess - htaccess - 防止热链接/网页抓取并将攻击者的网页重定向到警告页面

转载 作者:行者123 更新时间:2023-12-04 14:50:21 24 4
gpt4 key购买 nike

恶意网站所有者正在使用我们网站的内容来说 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>

但它不起作用。我们做错了什么?

引用:htaccess prevent hotlink also prevents external links

最佳答案

“盗链”和“网页抓取”是两种截然不同的东西。您用简化的 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com