首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

防禦惡意反向代理與網站鏡像:JS、PHP、.htaccess 多層防護策略

     編輯:PHP 相關知識

什麼是反向代理?

正向代理:客戶端主動配置,透過代理服務器訪問目標站點,隱藏客戶端真實 IP。

反向代理:對客戶端透明,客戶端以為直接訪問目標站點,實際請求被代理服務器轉發至後端真實服務器並返回內容。惡意反向代理即攻擊者架設代理服務器「盜取」你的網站內容,對用戶與搜尋引擎呈現為一個完整鏡像站點。

惡意反向代理的危害

  • 盜用伺服器資源,導致網站載入緩慢
  • 產生大量鏡像內容,觸發搜尋引擎重複內容懲罰(沙箱、降權)
  • 若鏡像頁面包含廣告聯盟代碼(如 AdSense),惡意點擊極易導致帳號封禁
  • 品牌聲譽受損、流量劫持、數據洩露等

三層防護方案

1. JavaScript 客戶端防護(部署簡單,但可被繞過)

<script type="text/javascript">
if (document.domain !== 'example.com' && document.domain !== 'www.example.com') {
    window.location.href = 'https://www.example.com/';
}
</script>

同時防 iframe 嵌入:

<script type="text/javascript">
if (top.location !== self.location) top.location = self.location;
</script>

2. PHP 伺服器端防護(推薦,對 SEO 友好)

<?php
function proxy_filter() {
    return $_SERVER['SERVER_NAME'];
}

$allowed_domains = ['example.com', 'www.example.com'];
$current_domain = proxy_filter();

if (!in_array($current_domain, $allowed_domains)) {
    header('HTTP/1.1 403 Forbidden');
    exit('非法反向代理訪問');
    // 或重定向:header('Location: https://www.example.com/');
}
?>

3. .htaccess / Apache 層面防護(效能最佳)

.htaccess

RewriteEngine On
RewriteBase /
php_value auto_append_file proxy.php

proxy.php

<?php
$forwarded = getenv("HTTP_X_FORWARDED_FOR");
$host = getenv("HTTP_HOST");
$allowed = ['example.com', 'www.example.com'];

if ($forwarded !== "" && !in_array($host, $allowed)) {
    exit('本服務器禁止惡意反向代理!');
}
?>

最佳實踐建議

  1. 優先使用 PHP + .htaccess 雙重防護,JS 僅作輔助
  2. 配合 X-Frame-Options: SAMEORIGIN 或 Content-Security-Policy: frame-ancestors 'self' 防 iframe 嵌入
  3. 在 CDN/WAF 層面設置Referer檢查、User-Agent 過濾、IP 限流
  4. 定期監控搜尋引擎收錄情況,發現鏡像站及時提交刪除申訴

多層防護結合,可有效遏制惡意反向代理,保護網站資源與 SEO 權重。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved