2013-07-02 3 views
0

클릭 재킹 (Clickjacking)은 사람들이 속여서 사용자가 의도하지 않은 버튼을 클릭하여 악의적 인 행동을하도록 유도하는 행위입니다.이것은 클릭 재발을 방지하기위한 충분한 방법입니까?

저는 상인을위한 옵션으로 지불을 위해 웹 사이트에 삽입 할 수있는 iFrame 구성 요소를 제공하는 제품을 개발 중입니다. 로그인 한 사용자는 중요한 동작을 수행하기 위해 클릭 할 수있는 iframe의 버튼을 볼 수 있습니다. 이 동작은 클릭이 실제로 발생했을 때만 호출해야합니다.

예를 들어 iFrame의 불투명도가 0으로 설정된 경우 iFrame의 버튼이 보이지 않지만 다른 보이는 버튼 위에 배치 될 수 있습니다. 따라서 사용자는 속여서 클릭 할 수 있습니다.

나는 그것을 예방하는 방법이 있다고 생각하지만, 그것이 충분한 지 아닌지 잘 모르겠습니다. 다음 코드는 iframe에 갈 것 : iframe이 어떤 식 으로든 가려 경우

<script> 
    function frameVisible() { 
     var has_dimension = $(frameElement).is(':visible'); 
     var is_visible = $(frameElement).css('visibility') == 'visible'; 
     var is_opaque  = $(frameElement).css('opacity') == '1'; 
     var one_deep  = (parent == top); 
     return has_dimension && is_visible && is_opaque && one_deep; 
    } 
    if (!frameVisible()) { 
     $(document.body).hide() 
    } 
</script> 

기본적으로, iframe이 내용이 표시되지 않습니다, 의도하지 않은 클릭을 방지 할 수있다.

여기 제공된 코드를 둘러 볼 방법이 있는지 알아보기 위해 노력하고 있습니다.

+0

버튼을 두 번 누르거나 키 누르거나 드래그하거나 "yes"로 입력해야하는 더미 captha를 사용하면 모든 클릭 깍기를 방지 할 수 있습니다. – dandavis

답변

0

충분하지 않습니다.

공격자는 자신의 요소를 위에 배치하고 사용자가 클릭 할 때까지 약간의 간격을 두거나 사용자가 표지를 클릭 할 수 있도록 pointer-events: none을 설정할 수 있습니다.

AFAIK, AFAIK,이를 감지 할 수있는 방법은 없습니다.