demoshop

demo, trying to be the best_

這標題看起來好像很猛,但是其實這種需求本身就是沒意義的需求(破解的方式太多種),但是江湖路走多了,還是會遇到這種需求為了避免花費太多時間在這種地方,所以 demo 就整理了這篇文,列出實作方法與破解方法讓遇到此需求的朋友可以明確的知道各種限制的作法與破解方法。

注意事項這種需求只有 IE 才有可能做到,其他瀏覽器解除的方法多得很,好加在想要有這種需求的業主通常都用 IE,所以本文會將 IE 6 以上的個版本明確說明是否可以支援,而 Google Chrome 和 Firefox 的支援都只測試撰寫本文時的最新版。

●如何防止網頁被另存新檔

  • IE支援版本:6、7、8
  • Firefox支援:否
  • Chrome支援:否

實作方式:在頁面最上方插入一個不存在的 iframe 利用此方法讓 IE 無法正確的存下網頁而導致錯誤

<noscript><iframe src=*.htm></iframe></noscript>

破解方式:

  • 使用 IE9 或非 IE 瀏覽器
  • 使用任何的 Developer Tool 拿掉上面加入的那條

●如何阻擋滑鼠右鍵選單

  • IE支援版本:6、7、8、9
  • Firefox支援:是
  • Chrome支援:是

實作方式:利用 js 阻擋滑鼠右鍵的預設行為(本範例使用 jQuery)

jQuery(document).ready(function()
{
$(this).bind("contextmenu", function(e) {
        e.preventDefault();
    });
}

破解方式:


●如何防止網頁被列印

  • IE支援版本:6、7、8、9
  • Firefox支援:是
  • Chrome支援:是

實作方式:利用 CSS Media 設定列印時的 CSS 將 Body 以下元素整個隱藏

<style type="text/css">@Media Print { Body {display:none;}}</style>

破解方式:

  • 使用任何的 Developer Tool 拿掉上面加入的那條
  • 利用 javascript 再加上一條 Print CSS (利用 CSS 特性越近優先權越高)

●如何防止網頁被Print Screen 抓圖

  • IE支援版本:6*、7*、8*、9*
  • Firefox支援:否
  • Chrome支援:否

實作方式:利用 js 跑迴圈將剪貼簿一直刪除

function clipboard() {
    try {
        if (!(clipboardData.getData("URL") || clipboardData.getData("Text")))
            window.clipboardData.clearData();
    }
    catch (e) {
        window.clipboardData.clearData();
    }
    setTimeout(function () { clipboard(); }, 700)
}

注意事項IE會因為預設安全性設定導致跳出警告,可以利用加入信任的網頁解決,因此建議此招只用在內部網站

破解方式:

  • 使用非 IE 瀏覽器
  • 關閉 javascript
  • 0.7 秒內完成 抓圖貼上的步驟

●如何防止網頁被複製

  • IE支援版本:6、7、8、9
  • Firefox支援:是*
  • Chrome支援:是

實作方式:在 Body 加上特殊屬性

<body oncut="return false" oncopy="return false" onselectstart="return false">

注意事項Firefox 可以選取但無法複製,Firefox 關閉選取的功能請參考(Firefox 封鎖滑鼠右鍵與選取功能

破解方式:

  • 使用任何的 Developer Tool 拿掉上面加入的那條。

 


demo廢言以上就是 demo 整理出來的,如有不足或錯誤的地方還請告知。

回應討論