키 테이크 아웃
자산에 대한 액세스 제어 구현은 보안에 중요합니다. 화이트리스트는 권장되는 접근법으로, 게이트 키퍼는 신뢰할 수있는 엔티티 만 자산에 액세스 할 수 있도록합니다. 이 게이트 키퍼는 HTTP 서버 또는 애플리케이션 코드에 배치하여 http_host를 확인하는 도구를 제공 할 수 있습니다.
HTTP 서버는 모든 요청에 대해 응용 프로그램 코드를 발사 할 필요없이 액세스 제어를 효율적으로 처리 할 수 있습니다. 서버에 따라 Apache에서 mod_rewrite 또는 허용/거부 또는 Nginx의 Httpreferermodule과 같은 다른 방법을 사용할 수 있습니다. 그러나 변화를 관리하거나 빈번한 변화를 많이하는 도메인이 많으면이 접근법의 확장 성이 어려울 수 있습니다.
응용 프로그램 코드 수준에서의 액세스 제어는 더 많은 유연성을 제공합니다. 이 방법은 또한 Iframe 상황에 대한 정보를 제공하지 않는 iframe 상황을 처리 할 수 있습니다. 그러나 HTTP 서버와 애플리케이션 코드 방법 모두가 완벽하지 않으며 OAUTH와 같은 토큰 기반 게이트 키퍼는 향상된 보안에 권장됩니다.
멋진 웹 앱이나 웹 사이트를 구축 할 때, 우리는 때때로 사람들이 웹 앱/웹 사이트의 일부를 자체적으로 포함시킬 수 있기를 원합니다. 그것은 '좋아요'버튼을 들고있는 iframe, 재사용하고자하는 간단한 이미지 일 수 있습니다.
그러나 우리는 접근성이있는 사람, 대역폭을 사용하고 서비스를 쿼리 할 수있는 사람을 어떻게 제어 할 수 있습니까?
우리는 문제를 -
로 제어하는 것으로 정의합니다
자산에 의해 우리는 우리가 의미합니다 : 우리 사이트에서 쿼리 할 수있는 모든 것. -
액세스 제한 : 일부를 허용하고 모든 를 차단하십시오
액세스 제어에 대해 이야기 할 때 보안 영역에 들어갑니다. 그리고 보안을 말할 때 화이트리스트는 문제를 해결하기 위해 취한 접근법이어야합니다. 누가 아닌 자산에 액세스 할 수있는 사람을 통제하는 것이 더 쉽습니다. 인터넷의 모든 부기 괴물을 아는 것은 불가능합니다.
-
우리의 자산을 보호하기 위해, 우리는 우리가 신뢰할 수 있도록 게이트 키퍼를 고용합니다. 일단 고용 한 후에 우리는 그에게 우리가 통제하는 화이트리스트에 접근 할 수있게 해주 며, 그에게 모든 무거운 리프팅을 할 수있게 해줍니다. 문제가 해결되었습니다. 그러나 게이트 키퍼는 어떻게 들어 올려야합니까?
리프팅 전술
게이트 키퍼가 얼마나 안전하고 고객이 요구하는지에 따라 다른 전술을 사용할 수 있습니다.
일반적인 접근 방식은 참조 헤더를 확인하는 것입니다. 이 방법에는 3 개의 큰 단점이 있습니다
링크를 사용하여 사람들이 귀하의 웹 사이트에 액세스 할 때도 참조자가 설정됩니다.
참조자는 클라이언트에 의해 서버로 전송되며 변경 될 수 있습니다 -
참조자는 전혀 설정되지 않을 수 있습니다
그러나 이미지, JS 및 CSS와 같은 정적 자산의 경우 이러한 단점은 문제가되지 않습니다. 자산은 사용자가 당사 웹 사이트를 직접 방문 할 때 (또는 신뢰할 수있는 사이트에서)로드해야합니다. 일반적인 아이디어는 다른 사람들이 핫 링크를 차단하는 것입니다. 따라서 참조자는 항상 화이트리스트에있을 것입니다. 자신을 믿지 않는 한 - 더 큰 문제가 있습니다. -
형제, 심지어 들어 올리나요?
사용 된 설정에 따라 쿼리가 일련의 게이트 를 통과합니다. 간단한 설정은 다음과 같습니다. 클라이언트 -> http 서버 -> 응용 프로그램 코드
그럼 게이트 키퍼는 어디에 앉나요? 고객은 신뢰할 수없는 거짓말 인간이기 때문에 사실상 액세스 제어를 할 수 없습니다. 반면에 HTTP 서버와 응용 프로그램 코드는 유용한 옵션입니다. 둘 다 http_host를 확인하는 강력한 도구를 제공합니다
http 서버는
를 들어 올리는 방법을 알고 있습니다
HTTP 서버가 액세스 제어를 처리 할 때의 강점은 속도입니다. 모든 요청에 대해 응용 프로그램 코드를 발사 할 필요가 없습니다. 전체 애플리케이션 스택/스레드 (예 : mod_php)를 메모리에로드 할 필요가 없기 때문에 성능을 크게 향상시킬 수 있습니다.
HTTP 서버에 따라 다른 솔루션을 사용할 수 있습니다
- 아파치
Apache에는 두 가지 방법이 있습니다. 우리는 mod_rewrite 또는 허용/거부를 사용할 수 있습니다
mod_rewrite 방법 :
mod_rewrite는 대부분의 호스팅 제공 업체가 지원합니다
허용/거부 방법 :
모든 호스트가 해당 설정을 지원하는 것은 아닙니다
nginx
nginx의 httpreferermodule은 우리에게 정말 멋진 valid_referers를 제공합니다. 그래서 우리가해야 할 일은 http 코드 444를 반환하는 것입니다. 헤더를 보내지 않고 연결…
http 서버는
라고 생각하지 않습니다
여기서 가장 큰 문제는 확장 성입니다. 자산에 액세스 할 수있는 1000 개의 도메인이 있다면 어떨까요? 도메인 목록이 자주 변경되면 어떻게됩니까?
모든 작은 편집을 위해서는 구성 파일로 뛰어들 필요가 있습니다. 수동으로 더 많이 변경할수록 더 잘못 될 수 있습니다.
.
응용 프로그램 코드는 무엇을 해야하는지 알고 있습니다
애플리케이션 코드 수준에서 액세스 제어가 있으면 훨씬 더 유연성이 있습니다. 그의 게이트 키퍼가 오랫동안 달리게 할 수 있습니다 :
그 iframes는 어떻습니까?
언급 한 바와 같이, 참조 자에 의존하는 것이 항상 좋은 생각은 아닙니다. 그것은 우리의 신뢰할 수없는 인간의 데이터 일뿐 만 아니라 우리가 iframe에 있는지 여부에 대한 단서를 제공하지 않습니다. 단순히 알 수있는 방법이 없습니다. 그러나 우리는 게이트 키퍼를 돕기 위해 히트맨을 고용 할 수있었습니다. 우리의 히트맨은 의심스러워 보이는 인간에게 파견 될 것입니다 (예 : 신뢰할 수없는 참조자가있는 사람). 히트맨은 js를 그의 무기로 사용합니다 :
슬프게도, 신뢰할 수없는 도메인에서 도착하는 사람은 신뢰할 수없는 도메인의 iframe을 사용하여 우리에게 접근하는 다른 사람과 동일한 참조자가 있습니다. 그러나 자산은 참조자가 우리의 도메인으로 설정되도록합니다 (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]
로그인 후 복사
이 코드는 프로덕션 증명이 아닙니다. 그것은 예입니다.
실제 보안은 어떻습니까?
여기에 제공된 솔루션은 대부분의 부기 몬스터에 대항 할 것입니다. 그러나 두 솔루션 모두 바보 증거가 아닙니다. 첫 번째는 클라이언트의 데이터를 사용하고 두 번째는 클라이언트가 실행하는 JavaScript입니다.
안전한 방법은 토큰 기반 게이트 키퍼를 사용하는 것입니다. Oauth는 아마도 당신이 여기서 일하기를 원하는 사람 일 것입니다. 그러나 그것은이 기사의 범위를 벗어난 것입니다. #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>
로그인 후 복사
.
자산 액세스 제한 방법에 대한 자주 묻는 질문 (FAQ)
자산 액세스 제한의 다른 방법은 무엇입니까? 자산 액세스 제한 방법은 디지털 자산에 대한 무단 액세스를 방지하는 데 사용되는 전략입니다. 이러한 방법에는 IP 차단이 포함되며 여기에는 특정 IP 주소에서 액세스를 차단하는 것이 포함됩니다. 지리적 위치에 따라 액세스를 제한하는 지오 블로킹; 및 특정 브라우저 나 장치의 액세스를 방지하는 사용자 에이전트 차단. 다른 방법으로는 참조 웹 사이트를 기반으로 액세스를 제한하는 HTTP 참조 차단 및 비밀번호 보호 기능이 있으며 사용자는 액세스를 얻기 위해 비밀번호를 입력해야합니다.
자산 액세스 제한에서 IP 차단은 어떻게 작동합니까? location / {
valid_referers trusted.tld trusted.domain.tld;
if ($invalid_referer) {
return 444;
}
}
로그인 후 복사
. IP 차단은 특정 IP 주소가 디지털 자산에 액세스하는 것을 방지하는 데 사용되는 방법입니다. 이는 서버 구성 파일의 '블랙리스트'에 IP 주소를 추가하여 수행됩니다. 이 IP 주소에서 나오는 모든 요청은 거부되어 자산에 액세스하는 것을 효과적으로 차단합니다. 자산 액세스 제한에서 지리 차단의 목적은 무엇입니까? 지리 블로킹은 사용됩니다. 지리적 위치에 따라 디지털 자산에 대한 액세스를 제한합니다. 이는 종종 지역 라이센스 계약을 준수하거나 사이버 공격으로 알려진 지역의 접근을 방지하는 데 사용됩니다. 지리 블로킹은 IP 주소를 기반으로 사용자의 위치를 결정하여 작동합니다. 자산 액세스 제한에서 사용자 에이전트 차단을 어떻게 사용할 수 있습니까?
사용자 에이전트 차단은 특정 브라우저 나 장치가 디지털 자산에 액세스하는 것을 방지하는 데 사용되는 방법입니다. 이는 서버에 요청할 때 브라우저 또는 장치에서 전송하는 사용자 에이전트 문자열을 식별하여 수행됩니다. 사용자 에이전트 문자열이 서버의 '블랙리스트'에서 하나와 일치하면 요청이 거부됩니다.
자산 액세스 제한에서 HTTP 참조자를 차단하는 역할은 무엇입니까? 참조 웹 사이트를 기반으로 액세스를 제한하는 데 사용되는 방법. 이는 요청에 따른 웹 사이트의 URL이 포함 된 HTTP 참조 헤더를 확인하여 수행됩니다. 참조자가 서버의 '블랙리스트'에 있으면 요청이 거부됩니다. 암호 보호는 자산 액세스 제한에서 어떻게 작동 하는가?
암호 보호는 A에 대한 액세스를 제한하는 데 사용되는 방법입니다. 사용자가 비밀번호를 입력하도록 요구함으로써 디지털 자산. 이것은 종종 개인 또는 민감한 자산에 사용됩니다. 서버는 자산에 액세스하려고 할 때 사용자에게 암호를 자랑하며 올바른 비밀번호를 입력 한 사람 만 액세스 권한을 부여받습니다.
여러 자산 액세스 제한 방법을 함께 사용할 수 있습니까?
예, 다중 자산 액세스 제한 방법을 함께 사용하여 더 높은 수준의 보안을 제공 할 수 있습니다. 예를 들어, IP 차단을 사용하여 특정 IP 주소의 액세스를 방지 한 다음 암호 보호를 사용하여 승인 된 사용자에 대한 액세스를 추가로 제한 할 수 있습니다.
내 웹 사이트에서 자산 액세스 제한 방법을 구현하려면 어떻게해야합니까?
웹 사이트에서 자산 액세스 제한 방법 구현에는 일반적으로 서버 구성 파일을 수정하는 것이 포함됩니다. 정확한 프로세스는 사용중인 서버 소프트웨어와 구현하려는 특정 제한 방법에 따라 다릅니다. 자산 액세스 제한 방법을 사용하는 단점이 있습니까? 높은 수준의 보안을 제공 할 수 있으며, 합법적 인 사용자를 차단할 수도 있습니다. 예를 들어, IP 차단은 VPN 또는 프록시를 사용하는 사용자를 차단할 수 있으며 Geo-Blocking은 해외 여행을하는 사용자를 차단할 수 있습니다. 따라서 이러한 방법을 구현하기 전에 사용자에게 잠재적 인 영향을 신중하게 고려하는 것이 중요합니다.
자산 액세스 제한 방법에 대한 몇 가지 대안은 무엇입니까?
자산 액세스 제한 방법에 대한 대안은 컨텐츠 전달을 사용하는 것을 포함합니다. 네트워크 (CDN)는 자산을 배포하거나 방화벽을 사용하여 서버를 보호하거나 다양한 보안 기능을 제공하는 보안 플러그인 또는 서비스를 사용합니다. 이러한 대안은 자산 액세스 제한 방법의 잠재적 인 단점없이 높은 수준의 보안을 제공 할 수 있습니다.
위 내용은 자산 액세스 제한 방법 - 원치 않는 방문자를 차단하십시오의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!