簡體   English   中英

防止通過JavaScript進行點擊劫持攻擊

[英]preventing clickjacking attack by javascript

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

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

我使用此代碼來防止點擊劫持:

if (top == self ||  parent != top ||  document.location.hostname != document.domain) {  top.location.replace("https:\/\/www.mysite.com\/?404");}

有人可以破解我的代碼嗎?

注意:我不想使用x-frame-option

謝謝

在iframe中,您無法真正控制來自父級的點擊,如果它們在iframe中單擊,但又有另一個事件在監視它,則無法真正阻止它來自其他域。

但是,一切並不會丟失,Iframe本身無法阻止它,但是可以用類似的方法包裝它。 這是假設jquery,可能最好將其轉換為您的應用程序的本機版本,以顯示一個示例,我將使用jQuery。

<div id="i_wrap"><iframe src="SRC"></iframe></div>
<script>
$('#i_wrap').on('click',function(event){
event.stopPropagation();
});
</script>

當然,這還不能解決所有問題,但仍有很多解決方法。 您還可以使用此處閱讀的新HTML 5跨文檔消息傳遞的一部分進行驗證,並可能在不安全的網站上警告用戶(如果iframe沒有收到消息,則您不會顯示任何按鈕)。

盡管我沒有跨文檔消息傳遞方法的經驗,但是我確信它們可能不允許使用不同的域(盡管在某種程度上可以解決這個問題)。

盡管這個問題尚不完全清楚,我可能還不太了解,但是如果您用更多詳細信息更新您的問題,我將更新我的答案以適合您。

暫無
暫無

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

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