2016-10-31 4 views
0

webinspect 응용 프로그램을 실행하여 응용 프로그램의 보안 위협을 탐지하고 있습니다. 발견 된 위협 중 하나가 (Cross-Frame Scripting)이었고 (X-Frame-Options) 헤더를 추가하여 수정했습니다 (SAMEORIGIN). 지금은 때, 여전히 감지 webinspect (프레임 간 스크립팅)를 다시 실행하고 다음과 같은 메시지가 함께보고됩니다보안 웹 검사기가 내 프레임 파열을 효과적인 것으로 인식하지 못합니다.

효과적인 프레임 파열 기술은 관찰되지 않았다 프레임 안에이 페이지를 로드하는 동안

블록 차단 코드를 많이 사용했지만 동일한 문제가 계속 발생합니다. 나는 다음과 같은 블록 살인범을 시도 :

첫 번째 시도 :

<style> html{display:none;} </style> 
    <script>  
    if(self == top) { 
    document.documentElement.style.display = 'block';} 
    else { 
    top.location = self.location; } 
</script> 

두 번째 시도 :

if (top != self) { top.location.replace(self.location.href); } 

세 번째 시도 :

if(top.location!=self.locaton) { 
    parent.location = self.location; 
} 

답변

0

는 "효과적인 일을"정의를.

제시 한 세 가지 자바 스크립트 스 니펫이 작동하지만,이를 멈추는 방법을 살펴 보았습니까?

예를 들어, (공격자가 제어하는 ​​것)을 iframe에 빈 값으로 샌드 박스 속성을 추가 :

<iframe src="Inner.html" sandbox=""> 
다음

iframe documentation

은 내가 한 샘플 테스트입니다 :

를 a2 Inner.html

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
     <meta charset="utf-8"> 
     <title>Inner Html</title> 
    <script>  
    if (top != self) { top.location.replace(self.location.href); } 
</script> 
    </head> 
    <body> 
     <h1>Inner Html</h1> 
     <p> 
      Inner Html 
     </p> 
    </body> 
</html> 

X-프레임 - 옵션

당신이 프레임에없는 확인하기 위해 X-Frame-Options와 자바 스크립트 코드를 사용하는 경우, 왜 설정하지 723,210

SAMEORIGIN 대신 DENY 값을 사용 하시겠습니까?

SAMEORIGIN으로 공격 표면이 작 으면 iframe이 사이트에서 오는 경우에만 성공할 수 있습니다 (다른 취약점이 있음). 사이트에서 iframe을 사용하지 않을 경우 더 안전한 옵션 인 X-Frame-Options: DENY으로 이동할 수 있습니다.

이것이 HPE Fortify WebInspect의 예상입니다.

콘텐츠 보안 정책 (CSP) 프레임의 조상은 또 다른 옵션은 HTTP 헤더 '콘텐츠 - 보안 - 정책'에서 '없음'값으로 frame-ancestors 지시어를 사용하는 것입니다

을 지시어. 이렇게하면 (지원되는 브라우저에서) 모든 도메인에서 콘텐츠 프레이밍을하지 못하게됩니다. 프레이밍에 대한 특정 필요가 확인되지 않은 경우이 설정을 사용하는 것이 좋습니다.

훌륭한 자원이

당신은 당신을 감사합니다 OWASP's Clickjacking Defense Cheat Sheet

+0

에 이상 클릭 재킹의 prevetion에 대한 자세한 정보를 찾을 수 있습니다. 나는 그것을 시도 할 것이다 – Ala

+0

@Ala 그것이 효과가 있었느냐? – Rotem

+0

@Rotem 아니야 – Ala