>웹 프론트엔드 >HTML 튜토리얼 >iframes 사용의 보안 영향은 무엇이며 어떻게 완화 할 수 있습니까?

iframes 사용의 보안 영향은 무엇이며 어떻게 완화 할 수 있습니까?

Emily Anne Brown
Emily Anne Brown원래의
2025-03-18 14:51:35686검색

iframes 사용의 보안 영향은 무엇이며 어떻게 완화 할 수 있습니까?

iframes (인라인 프레임)는 웹 페이지 내에 직접 외부 컨텐츠를 포함 할 수있는 HTML 요소입니다. 다양한 소스의 컨텐츠를 통합하여 사용자 경험을 향상시킬 수 있지만 몇 가지 보안에 영향을 미칩니다.

  1. 크로스 사이트 스크립팅 (XSS) : Iframe이 신뢰할 수 없거나 손상되지 않은 소스에서 컨텐츠를로드하면 사이트의 맥락에서 악의적 인 스크립트를 실행하여 잠재적으로 사용자 데이터를 훔치거나 사용자를 대신하여 작업을 수행 할 수 있습니다.

    완화 : sandbox 속성을 사용하여 iframe의 기능을 제한하십시오. 이 속성을 사용하면 스크립트 실행 방지, 양식 제출 등과 같은 제한을 부과 할 수 있습니다. 또한 IFRAME 컨텐츠 또는 속성에 영향을 줄 수있는 사용자 입력을 항상 검증하고 소독하십시오.

  2. 클릭 잭킹 : 이것은 Iframe이 사용자가 클릭하고 있다고 인식하는 것과 다른 것을 클릭하도록하는 데 사용되는 경우에 발생합니다.

    완화 : X-Frame-Options HTTP 헤더를 구현하여 페이지 프레임을 제어하고 컨텐츠 보안 정책 (CSP)의 frame-ancestors 지시문을 사용하여 컨텐츠를 포함 할 수있는 도메인을 추가로 제어하십시오.

  3. 정보 유출 : iframes는로드 된 컨텐츠를 통해 또는 다른 사이트가 사이트의 특정 데이터에 액세스 할 수 있도록함으로써 민감한 정보를 노출시킬 수 있습니다.

    완화 : iframes에 액세스 할 수있는 데이터에주의하십시오. referrer 정책을 사용하여 iframe을로드 할 때 Referer 헤더에 전송되는 정보를 제한하십시오. 또한 신뢰할 수없는 소스의 IFRAME를 통해 민감한 정보에 액세스 할 수 없도록하십시오.

  4. DOS (Denial of Service) : 악의적으로 제작 된 iframes를 사용하여 동일한 자원을 여러 번로드하여 서버에 과부하를 줄 수 있습니다.

    완화 : 잠재적 인 DOS 공격을 감지하고 완화하기위한 속도 제한 및 모니터링 구현. 또한 캐싱 전략을 사용하여 iframes 내에서 컨텐츠를 제공 할 때 서버로드를 줄입니다.

내 웹 사이트의 iframes가 크로스 사이트 스크립팅 공격으로부터 안전한 지 확인하려면 어떻게해야합니까?

귀하의 웹 사이트의 IFRAME을 크로스 사이트 스크립팅 (XSS) 공격으로부터 보호하려면 다음을 수행하십시오.

  1. sandbox 속성 사용 : sandbox 속성은 iframe이 할 수있는 일에 대한 제한을 부과하여 XSS의 위험을 크게 줄일 수 있습니다. 예를 들어, sandbox="allow-scripts" 를 설정하면 여전히 스크립트 실행이 허용되지만보다 제어 된 환경 내에 있습니다.

     <code class="html"><iframe sandbox="allow-scripts" src="https://example.com"></iframe></code>
  2. 입력 검증 및 소독 : 공격자가 악의적 인 URL을 주입하지 못하도록 IFRAME의 SRC 속성 또는 기타 속성에 영향을 줄 수있는 사용자 입력을 항상 검증하고 소독합니다.
  3. 컨텐츠 보안 정책 (CSP) 구현 : CSP 헤더를 사용하여 사이트 내에서 실행할 수있는 컨텐츠 소스를 정의하십시오. 예를 들어, 엄격한 CSP는 다음과 같습니다.

     <code>Content-Security-Policy: "default-src 'self'; script-src 'self' 'unsafe-inline';"</code>

    이 정책은 스크립트가 동일한 원점에서만로드되도록 제한되어 외부 스크립트가 실행되는 것을 방지합니다.

  4. 가능한 경우 CSP에서 unsafe-inline 사용을 피하십시오. unsafe-inline 지시문은 인라인 스크립트를 허용하여 제대로 관리하지 않으면 위험 할 수 있습니다. 위험을 최소화하기 위해 인라인 스크립트에 해시 또는 비스를 사용하십시오.
  5. HTTP 전용 쿠키 사용 : IFRAME 내의 클라이언트 측 스크립트를 통해 액세스 할 수 있도록 HttpOnly 플래그와 함께 세션 쿠키가 설정되어 있는지 확인하십시오.

iframes를 사용할 때 클릭 재킹을 방지하기 위해 어떤 단계를 수행 할 수 있습니까?

iframes를 사용할 때 클릭 재킹을 방지하려면 다음 단계를 고려하십시오.

  1. X-Frame-Options 구현 헤더 구현 : X-Frame-Options HTTP 헤더를 사용하여 사이트를 프레임 할 수 있는지 여부를 제어하십시오. 일반적인 값은 다음과 같습니다.

    • DENY - 사이트의 프레임을 방지합니다.
    • SAMEORIGIN 귀하의 사이트는 동일한 원점의 페이지로만 사이트를 구성 할 수 있습니다.
    • ALLOW-FROM uri 사이트를 구성 할 수있는 특정 URI를 지정합니다 (이는 더 이상 사용되지 않고 일반적으로 지원되지 않음).

    예:

     <code>X-Frame-Options: SAMEORIGIN</code>
  2. 컨텐츠 보안 정책의 frame-ancestors 지침을 활용 : 이 지침은 X-Frame-Options 보다 유연하고 강력합니다. iframe 내에 페이지를 포함시킬 수있는 도메인을 지정할 수 있습니다.

    예:

     <code>Content-Security-Policy: frame-ancestors 'self' example.com;</code>
  3. 프레임 버스트 JavaScript 사용 : 서버 측 헤더를 적용 할 수없는 경우 프레임 버스트 JavaScript를 사용하여 사이트가 프레임이 있는지 여부를 감지하고 프레임에서 벗어날 수 있습니다.

     <code class="javascript">if (top !== self) { top.location = self.location; }</code>

    그러나 최신 브라우저를 해당 스크립트를 차단하도록 구성 할 수 있으므로이 방법은 덜 신뢰할 수 있습니다.

  4. 사용자 인터페이스 컨트롤 구현 : 사용자 인터페이스를 디자인하여 클릭 잭킹을 더욱 어렵게 만듭니다. 예를 들어, 오버레이 기술을 사용하거나 사용자가 iframes를 통해 자동화하기 어려운 특정 작업을 수행하도록 요구합니다.

보안을 향상시키기 위해 iframes에 적용 해야하는 특정 구성 또는 설정이 있습니까?

iframes의 보안을 향상 시키려면 다음과 같은 특정 구성 및 설정을 적용하십시오.

  1. sandbox 속성 사용 : sandbox 속성을 적용하여 iframe이 수행 할 수있는 동작을 제한하십시오. 예를 들어:

     <code class="html"><iframe sandbox="allow-scripts allow-forms" src="https://example.com"></iframe></code>

    이 설정은 스크립트 및 양식 제출을 허용하지만 잠재적으로 위험한 다른 행동을 방지합니다.

  2. allow 속성 세트 : allow 속성을 사용하면 iframe이 사용할 수있는 카메라, 마이크 또는 지리적 위치 액세스와 같은 기능을 지정할 수 있습니다. 예를 들어:

     <code class="html"><iframe allow="geolocation" src="https://maps.example.com"></iframe></code>
  3. referrerpolicy 속성 사용 : Iframe이로드 될 때 Referer 헤더에서 전송 된 정보를 제어하십시오. 예를 들어, 참조자 정보를 보내지 않으려면 다음을 사용하십시오.

     <code class="html"><iframe referrerpolicy="no-referrer" src="https://example.com"></iframe></code>
  4. loading 속성 구현 : loading 속성을 사용하여 Iframe이 컨텐츠로드하는 방식을 제어하여 성능 및 보안을 향상시킬 수 있습니다. 예를 들어:

     <code class="html"><iframe loading="lazy" src="https://example.com"></iframe></code>

    이것은 필요할 때까지 Iframe의 로딩을 지연시켜 공격 표면을 줄입니다.

  5. 신뢰할 수있는 소스로 src 속성을 구성하십시오. IFRAME가 신뢰할 수있는 소스에서 컨텐츠를로드하도록 허용합니다. src 속성에 영향을 줄 수있는 사용자 입력을 검증하고 소독합니다.
  6. HTTPS 사용 : Iframe의 내용이 HTTPS에로드되어 중간 공격을 방지하십시오.

이러한 구성을 적용하면 웹 사이트에서 iframes의 보안을 크게 향상시킬 수 있습니다.

위 내용은 iframes 사용의 보안 영향은 무엇이며 어떻게 완화 할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.