首頁 > 後端開發 > php教程 > 資產訪問限制方法 - 阻止不需要的訪客

資產訪問限制方法 - 阻止不需要的訪客

尊渡假赌尊渡假赌尊渡假赌
發布: 2025-02-20 10:23:10
原創
892 人瀏覽過

Asset Access Restriction Methods - Block Unwanted Visitors

資產訪問限制方法 - 阻止不需要的訪客

鑰匙要點

  • >對您的資產實施訪問控制對於安全至關重要。白名單是推薦的方法,看門人只允許受信任的實體訪問您的資產。可以將該網守放置在HTTP服務器或應用程序代碼上,提供檢查HTTP_HOST的工具。 > HTTP服務器可以有效地處理訪問控制,而無需為每個請求啟動應用程序代碼。根據服務器,可以使用不同的方法,例如mod_rewrite或apache中的允許/拒絕,或者可以使用nginx中的httpreferermodule。但是,如果有許多域需要管理或頻繁更改,則這種方法的可伸縮性可能是一個挑戰。 在應用程序代碼級別上的訪問控制提供了更大的靈活性。此方法還可以處理IFRAME情況,在此情況下,轉介商未提供有關iFrame狀態的信息。但是,HTTP服務器和應用程序代碼方法都不是萬無一失的,建議使用基於令牌的守門人(例如Oauth)來增強安全性。
  • >構建很棒的網絡應用程序或網站時,我們有時希望人們能夠將我們的Web應用程序/網站的一部分嵌入自己的位置。那可能是一個持有“喜歡”按鈕的iframe,他們想重複使用的簡單映像,甚至是我們整個應用程序嵌入在iframe中的圖像。
  • >
  • 但是,我們如何控制誰有訪問權限,允許誰消耗我們的帶寬並查詢我們的服務?
>

我們將問題定義為

控制訪問

to

資產

> 通過資產,我們的意思是:任何可以從我們的網站查詢的東西。 > >訪問限制:允許一些,阻止全部

>

在談論訪問控件時,我們進入安全域。在談論安全性時,白名單應該是解決問題的方法。控制誰可以訪問您的資產

比控制誰更容易訪問您的資產。根本不可能知道互聯網的所有布吉怪物。 >

為了保護我們的

資產

,我們僱用了一個看門人,只讓我們信任的人。問題解決了。但是,看門人應該如何舉起? > 舉重策略

>取決於您希望看門人的安全性以及客戶要求的東西,可以使用不同的策略。 > >使用的一種常用方法是檢查參考器標頭。該方法有3個大缺點:

    當人們使用鏈接
  1. 訪問您的網站時,也將設置推薦人
  2. 推薦人是由客戶端發送到您的服務器的,可以更改
  3. >
  4. 可能根本無法設置推薦人
  5. 但是,對於靜態資產,例如圖像,JS和CSS,這些缺點不是問題。僅當用戶直接訪問我們的網站(或來自受信任的網站)時,才應加載您的資產。一般的想法是阻止其他人熱鏈接他們。因此,推薦人將始終在您的白名單上。除非您不信任自己 - 但是您有更大的問題。
>

兄弟,你甚至舉起嗎?

>

>根據所使用的設置,查詢通過一系列

。簡單的設置為:客戶端 - > http服務器 - >應用程序代碼

那麼,您的看門人在哪裡坐在哪裡?事實上,客戶是訪問控制的事實,因為他是一個不可靠的人。另一方面,HTTP服務器和應用程序代碼是有用的選項。兩者都為我們提供了強大的工具來檢查HTTP_HOST。

http服務器知道如何舉起

讓您的HTTP服務器處理您的訪問控件的強度是速度。無需為每個請求啟動應用程序代碼。這可以大大提高性能,因為我們不需要將整個應用程序堆棧/線程(例如mod_php)加載到內存中。

>

>根據您的HTTP服務器,可以使用不同的解決方案。

>

apache

在Apache中,有兩種不同的方法。我們可以使用mod_rewrite或允許/拒絕。

>

mod_rewrite方法:

大多數託管提供商都支持mod_rewrite。

允許/拒絕方法:
# Turn mod_rewrite on
RewriteEngine On

# if it is not trusted.domain.tld block it
RewriteCond %{HTTP_REFERER} !^trusted\.domain\.tld$ [NC]
RewriteCond %{HTTP_REFERER} !^trusted\.tld$ [NC]
RewriteRule ^ - [F]
登入後複製
登入後複製

並非所有主機都支持這些設置。

nginx
#specify the files to guard, block all the assets
<files "*.*">
  #block everyone
  Deny from all
  #allow trusted ones
  Allow from trusted.tld trusted.domain.tld
</files>
登入後複製
登入後複製

HTTP服務器不認為

這裡的大問題是可擴展性:如果我們有1000個域需要能夠訪問我們的資產怎麼辦?如果域列表經常更改

怎麼辦?

>對於每一個小編輯,我們都需要深入研究我們的配置文件 - 您手動更改的越多,越會出錯。

>
應用程序代碼知道該怎麼做
在應用程序代碼級別上,在應用程序代碼級別上擁有訪問控件意味著更大的靈活性。一個人可能很快就會讓他的守門人起床並跑步:
location / {
  valid_referers trusted.tld trusted.domain.tld;
  if ($invalid_referer) {
    return   444;
  }
}
登入後複製
登入後複製

那些iframe呢?

> 如前所述,依靠推薦人並不總是一個好主意。它不僅是來自我們不可靠的人的數據,而且還沒有關於我們是否處於iframe中的任何線索。根本無法知道。

但是,我們可以聘請殺手來幫助我們的守門人。我們的殺手將被派往看起來可疑的人類(例如那些沒有信任的推薦人)。殺手將使用JS作為他的武器:

可悲的是,從不信任的域到達的人與其他人使用該不受信任域的iframe訪問我們的人相同。但是,資產將將推薦人設置為我們的域(即使在iframe情況下) - 因此在此處發送殺手是過分的。只是拒絕訪問就足夠了 - 或者您可以發送隨機的小貓圖像。
# Turn mod_rewrite on
RewriteEngine On

# if it is not trusted.domain.tld block it
RewriteCond %{HTTP_REFERER} !^trusted\.domain\.tld$ [NC]
RewriteCond %{HTTP_REFERER} !^trusted\.tld$ [NC]
RewriteRule ^ - [F]
登入後複製
登入後複製
>

這就是為什麼我們讓殺手檢查是否在iframe中的原因。如果是這樣,我們讓他殺死了我們的目標:

>我們唯一需要知道的是讓我們的守門人將殺手添加到發送給客戶的有效載荷中。簡單!
#specify the files to guard, block all the assets
<files "*.*">
  #block everyone
  Deny from all
  #allow trusted ones
  Allow from trusted.tld trusted.domain.tld
</files>
登入後複製
登入後複製

location / {
  valid_referers trusted.tld trusted.domain.tld;
  if ($invalid_referer) {
    return   444;
  }
}
登入後複製
登入後複製
此代碼不是生產證明。它是一個例子。

真實安全呢?
>

>這裡提供的解決方案將使您免受大多數布吉怪物的侵害。但是兩種解決方案都不是傻瓜。第一個使用來自客戶端的數據,第二個是由客戶端運行的JavaScript。

安全的方法是使用基於令牌的網守。 Oauth可能是您想要在這里工作的人,但這超出了本文的範圍。

>

經常詢問資產訪問限制方法的問題(常見問題解答)

>資產訪問限制的不同方法是什麼?

資產訪問限制方法是用於防止未經授權訪問數字資產的策略。這些方法包括IP阻止,其中涉及從特定的IP地址阻止訪問;地理障礙,該地理位置限制了訪問權限;和用戶代理阻止,可防止從特定的瀏覽器或設備訪問。其他方法包括HTTP推薦程序阻止,該阻止限制了基於Referring網站的訪問和密碼保護,該密碼保護要求用戶輸入密碼以獲取訪問權限。

IP阻止在資產訪問限制中如何工作? IP阻塞是一種用於防止特定IP地址訪問數字資產的方法。這是通過將IP地址添加到服務器配置文件中的“黑名單”中來完成的。來自這些IP地址的任何請求都將被拒絕,有效地阻止了它們訪問資產。

>在資產訪問限制中,地理障礙的目的是什麼?限制基於地理位置的數字資產的訪問。這通常用於遵守區域許可協議或防止因網絡攻擊而聞名的地區訪問。地理障礙通過基於其IP地址確定用戶的位置來起作用。

>如何在資產訪問限制中使用用戶代理阻止?

用戶代理阻止是一種用於防止特定瀏覽器或設備訪問數字資產的方法。這是通過識別用戶代理字符串來完成的,用戶代理字符串在向服務器提出請求時由瀏覽器或設備發送。如果用戶代理字符串在服務器的“黑名單”上與一個匹配,則該請求將被拒絕。

> HTTP推薦人阻止在資產訪問限制中的作用是什麼?一種用於限制基於Referring網站訪問的方法。這是通過檢查HTTP推薦人標頭來完成的,該標頭包含請求來自的網站URL。如果轉介程序在服務器的“黑名單”上,則將拒絕請求。

>

>密碼保護如何在資產訪問限制中起作用?

密碼保護是一種用於限制訪問訪問訪問的方法通過要求用戶輸入密碼來數字資產。這通常用於私人或敏感資產。當用戶嘗試訪問資產時,該服務器將提示用戶獲取密碼,並且只有輸入正確密碼的人才能獲得訪問。

>

可以一起使用多個資產訪問限制方法? 🎜>是的,可以將多個資產訪問限制方法一起使用以提供更高級別的安全性。例如,您可以使用IP封鎖來防止特定IP地址訪問,然後使用密碼保護進一步限制訪問對授權用戶的訪問。

如何在網站上實現資產訪問限制方法? >

>在您的網站上實現資產訪問限制方法通常涉及修改服務器的配置文件。確切的過程將取決於您使用的服務器軟件以及要實現的特定限制方法。

>

>在資產訪問限制方法時,是否有使用資產訪問限制方法的缺點?可以提供高水平的安全性,他們還可以阻止合法用戶。例如,IP阻止可以阻止使用VPN或代理的用戶,而地理障礙可以阻止出國旅行的用戶。因此,重要的是在實施這些方法之前仔細考慮對用戶的潛在影響。

>

>資產訪問限制方法的一些替代方法是什麼?

資產訪問限制方法的替代方法包括使用內容交付網絡(CDN)分配您的資產,使用防火牆保護服務器,或使用提供一系列安全功能的安全插件或服務。這些替代方案可以提供高水平的安全性,而沒有資產訪問限制方法的潛在缺點。

以上是資產訪問限制方法 - 阻止不需要的訪客的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板