禁止从网页复制数据

时间:2011-03-29 12:07:23

标签: asp.net html css

我一直在寻找创建网页的方法,因此用户无法从我的网页复制内容。即用户将无法选择网页上的任何文本。 我们假设我正在使用asp.net

完成任务的任何有趣的想法?

10 个答案:

答案 0 :(得分:18)

最终你不能。

如果您禁用选择文字的功能,则上下文菜单中的上下文菜单甚至只是复制选项仍然可以查看您的内容。

如果他们能看到它,就可以复制它:

  • 截图。
  • 拍张照片。
  • 在记事本中键入他们看到的文字。
  • 将文本录入录音机。

这不值得开发工作,你不会停止确定的复印机。你最终要做的就是让合法用户烦恼。

为您的网站增加价值,以便人们不断回头而不是仅仅采取内容和运行。这可能是:

  • 允许用户生成的内容扩展到那里。
  • 定期更新内容,以便始终保持新鲜感。

答案 1 :(得分:6)

您可以使用user-select CSS3属性

像这样的HTML:

<span class="protected">Datas you wants protect</span>

相应的CSS:

.protected {
    -moz-user-select:none;
    -webkit-user-select:none;
    user-select:none;
}

请参阅我的示例:http://jsfiddle.net/DoubleYo/RPv4q/

此解决方案不是跨浏览器,但可以使用firefox和chrome / safari

编辑:高级用户可以复制您的内容,查看页面来源,制作PDF或打印您的页面,有些人提到萤火虫,小提琴手。

答案 2 :(得分:1)

如果您发送任何文字,用户将能够看到来源,因此通过任何方法禁用复制和粘贴都不会真正帮助停止确定的复印机。

最有效的方法是将文本渲染到服务器上的图像并向下发送图像而不是原始文本,但在此之前需要考虑几个缺点:1)您需要容量您的服务器生成图像。 2)数据加载将高于文本,压缩效果会降低。 3)您也可能会松开一些缓存选项。

您是否有特殊原因要求用户复制文本,也许您可​​以提供其他方法可能提供更多详细信息?

答案 3 :(得分:0)

试试这个

<html>
<head>
<script language="<strong class="highlight">javascript</strong>">

 function onKeyDown() {

// current pressed key
 var pressedKey = String.fromCharCode(event.keyCode).toLowerCase();

 if (event.ctrlKey && (pressedKey == "c" || 
                    pressedKey == "v")) {
// <strong class="highlight">disable</strong> key press porcessing
event.returnValue = false;
 }

} // onKeyDown

 </script>
 </head>

 <body>
   <form name="aForm">
    <input type="text" name="aText" onkeydown = "onKeyDown()">
 </form>
 </body>
 </html>

答案 4 :(得分:0)

当有人访问您的网站时,他们会收到构成您网站大部分内容的html / css / images / JavaScript。因此,他们已经拥有了您的内容,因为大多数浏览器都会对其进行缓存,以便更快地浏览。

在此处详细了解HTTP - http://www.http.header.free.fr/http.html

因此,完全阻止知道http协议如何工作的人是不可能的。但你可以做的就是听取正确的点击次数并阻止正常的最终用户点击右键并保存图片等。你可以在这里得到一个片段 - http://www.dynamicdrive.com/dynamicindex9/noright.htm

但如果您正在谈论保护销售的图片/文件,请查看Protect html/php/image files from tracking,因为它适用于您的问题。

答案 5 :(得分:0)

您可以像这样添加身体标签:

<body onselectstart="return false">

答案 6 :(得分:0)

这是互联网。您无法完全保护页面内容。

但是您可以为用户执行此任务。

您也可以处理键盘和鼠标输入,例如Ctrl + C或右键单击鼠标。

但请记住,用户始终可以看到页面的源代码,将其复制并粘贴到HTML编辑器上。

您可以在Silverlight或Flash中创建自己的网站,但这会“禁用”搜索引擎索引。

答案 7 :(得分:0)

将您的页面转换为图片

答案 8 :(得分:0)

您可以禁用选择,如果没有选择,则无法复制/粘贴,但我建议您仅在页面的某些部分进行此操作,因为这会让用户感到沮丧。

这是您可以执行的简单代码,例如,如果div id="notme" disableSelOnThis("notme");,请运行 function disableSelOnThis(IdName) { var oElem = document.getElementById(IdName); if (oElem) disableSelection(oElem); } function disableSelection(element) { element.onselectstart = function() { return false; }; element.unselectable = "on"; element.style.MozUserSelect = "none"; element.style.cursor = "default"; }

{{1}}

代码来自:http://ajaxcookbook.org/disable-text-selection/,但其网站不再存在。

当然,如果没有javascript启用,这不起作用,ChrisF所说的一切仍然有效。

答案 9 :(得分:0)

只需在您的网页中复制并粘贴以下javascript:

<script language="javascript" type="text/javascript"> 
      function disableselect(e) {             
          return false 
      } 
      function reEnable() { 
          return true 
      } 

      document.onselectstart = new Function("return false") 


      if (window.sidebar) { 
          document.onmousedown = disableselect                    // for mozilla           
          document.onclick = reEnable 
      } 

      function clickIE() { 
          if (document.all) { 
              (message); 
              return false; 
          } 
      } 


      document.oncontextmenu = new Function("return false") 

     var element = document.getElementById('tbl'); 

     element.onmousedown = function () { return false; }        // mozilla         

   </script>           

注意:如果以上代码不适用于Firefox,则在body标签中添加style =“ - moz-user-select:none”,需要与上述代码一起限制。