簡體   English   中英

這是防止點擊劫持的足夠方法嗎?

[英]Is this a sufficient method for preventing clickjacking?

點擊劫持是指人們誘使用戶點擊他們不應該點擊的按鈕,從而使他們執行惡意操作。

我正在開發一種產品,作為商家的一種選擇,它提供了一個iFrame組件,該組件可以嵌入到網站中進行付款。 登錄的用戶將在iframe中看到一個按鈕,他們可以單擊該按鈕以執行重要操作。 僅當點擊是真正的點擊時,才應調用此操作。

例如,如果iFrame的不透明度設置為0,則可以對其進行定位,以使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,iframe的內容都會被隱藏,從而避免意外點擊。

我只是想找出是否有辦法解決這里提供的代碼。

這還不夠。

攻擊者可以將自己的元素放置在<iframe>上方,或者為用戶單擊留出很小的空隙,或者設置pointer-events: none允許用戶單擊封面。

AFAIK,您無法檢測到。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM