HTML) Link, Script 태그 integrity 옵션

카테고리 : 웹 프로그래밍/HTML

integrity 라는 옵션도 있다.

 

<link> 태그나 <script> 태그에서 이용가능하다.

이 옵션이 있는 이유는 해당 리소스를 이용할 사이트 관리자가 수정사항을 검토할 수 있도록 설계되었다.

 

설정값과 변동사항이 있다면 로드되지않는다.

기존 값과 다른경우 로드 차단

 

integrity 사용 예시

<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>

특정 버전의 파일이 변경되거나 변조된 경우 막을 수 있다.

이를 이용해 악의적인 스크립트 변조를 막을수도 있다.

 

지원하는 해시는 sha256 sha384 sha512이며

이 옵션은 IE는 적용되지 않습니다.

 

요즘 많은 웹사이트에서 CDN을 사용하나, 만약 CDN보안이 뚫리거나 CDN내용을 변조한다면(게시자의 코드수정 포함),

CDN을 사용하는 모든 웹사이트에 아래 예시와 같은 공격을 할 수 있을겁니다.

(예) CDN의 JS내용을 변조하여 접속한 사이트의 정보를 탈취(XSS방지가 대부분되어있으므로 최신 브라우저에서는 안됨) 또는 악성 스크립트 실행(크립토재킹, 악성사이트로 리다이렉트, 피싱사이트로 리다이렉트 등)

CDN이 뚫릴일은 희박하지만 보안은 가능성이 0%가 아닌 모든것을 막아야되므로 주의할수록 좋습니다.

 

지원 브라우저는 IE를 제외한 대부분의 브라우저입니다.

https://caniuse.com/#feat=subresource-integrity

 

SRI 해시 생성기

https://www.srihash.org/

 

관련 설명 글

https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity

 

 

저작권 보호안내
무단 전재, 재배포 행위는 금지됩니다. (글을 복사하여 게시금지)
본문의 일부(링크용 문장) 인용은 가능하지만, 출처와 링크(a 태그)를 남기셔야 됩니다.
(웹툴을 이용하고, 스크린샷/녹화하는것은 상관없습니다.)

예외적으로. 저에게 허락받은 경우에는 본문을 전재할 수 있습니다.

만약, 본문 공유를 원하신다면 링크 공유를 해주세요

저작권 정책 확인하기
링크 공유하기

 댓글