Asp.net 禁用从网页复制数据
我一直在寻找任何创建网页的方法,这样用户就不能从我的网页复制内容。i、 e.用户将无法选择网页上的任何文本。 假设我正在使用asp.net 完成这项任务有什么有趣的想法吗?最终你不能 如果您禁用了选择文本的功能,则上下文菜单甚至仅是上下文菜单中的复制选项,用户仍可以查看您的内容 如果他们能看到它,他们可以复制它:Asp.net 禁用从网页复制数据,asp.net,html,css,Asp.net,Html,Css,我一直在寻找任何创建网页的方法,这样用户就不能从我的网页复制内容。i、 e.用户将无法选择网页上的任何文本。 假设我正在使用asp.net 完成这项任务有什么有趣的想法吗?最终你不能 如果您禁用了选择文本的功能,则上下文菜单甚至仅是上下文菜单中的复制选项,用户仍可以查看您的内容 如果他们能看到它,他们可以复制它: 截图 拍照 在记事本中键入他们看到的文本 将课文听写到录音机中 这是不值得的发展努力,你不会停止决心复印机。你最后要做的就是骚扰你的合法用户 为你的网站增加价值,让人们希望继续回来
- 截图
- 拍照
- 在记事本中键入他们看到的文本
- 将课文听写到录音机中
- 允许用户生成的内容扩展到现有内容
- 定期更新内容,使其始终保持新鲜
<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>
函数onKeyDown(){
//当前按下的键
var pressedKey=String.fromCharCode(event.keyCode).toLowerCase();
如果(event.ctrlKey&&(按键==“c”|
按按键==“v”)){
//禁用按键过程
event.returnValue=false;
}
}//onKeyDown
当有人访问您的网站时,他们会收到html/css/images/JavaScript,这构成了您网站的大部分内容。所以他们已经有了你的内容,因为大多数浏览器也会缓存这些内容,以便更快地浏览
请在此处阅读有关HTTP的更多信息-
因此,不太可能完全阻止任何知道http协议如何工作的人。但你可以做的是倾听右键点击,阻止普通终端用户右键点击和保存图像等。你可以在这里得到一个片段-
但是,如果您正在谈论保护正在销售的图像/文件,请看一看,因为它适用于您的问题。您可以在您的身体标签上添加如下内容:
<body onselectstart="return false">
这是互联网。您无法完全保护页面内容 但是您可以为用户设置此任务的难度 您也可以处理键盘和鼠标输入,如Ctrl+C或鼠标右键单击 但是请记住,用户总是可以看到页面的源代码,复制并粘贴到HTML编辑器上
您可以使用Silverlight或Flash创建站点,但这将“禁用”搜索引擎索引。您可以使用
用户选择
CSS3属性
如下所示的HTML:
<span class="protected">Datas you wants protect</span>
参见我的示例:
此解决方案不是跨浏览器的,但可以与firefox和chrome/safari配合使用
编辑:高级用户可以通过查看页面源来复制您的内容,制作pdf或打印您的页面,有些人提到firebug、fiddler。将您的页面转换为图像如果您发送任何文本,用户将能够看到源,因此通过任何方法禁用复制和粘贴都不会真正帮助停止已确定的复印机 最有效的方法是将文本呈现到服务器上的图像中,并向下发送图像而不是原始文本,但在这样做之前,有几个缺点需要考虑:1)生成图像需要服务器上的容量。2) 数据负载将高于文本,压缩效率将降低。3) 您还可能会丢失一些缓存选项
您不想让用户复制文本有什么特别的原因吗?如果您能提供更多的详细信息,可能还有其他的方法吗?您可以禁用选择,没有选择,您就没有复制/粘贴功能,但是我建议您只在页面的某些部分这样做,因为这会让用户感到沮丧 这是您可以执行此操作的简单代码,例如,如果您有一个带有
id=“notme”
的div
,请在此(“notme”)上运行禁用选项代码>
代码来自:,但它的接缝表明此网站不再有效
当然,如果没有启用javascript,这将不起作用,ChrisF所说的一切仍然有效。只需将以下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>
函数禁用选择(e){
返回错误
}
函数可重入(){
返回真值
}
document.onselectstart=新函数(“返回false”)
if(window.sidebar){
document.onmousedown=disableselect//for mozilla
document.onclick=可重入
}
函数clickIE(){
如果(全部文件){
(信息);
返回false;
}
}
document.oncontextmenu=新函数(“返回false”)
var元素=document.getElementById('tbl');
element.onmousedown=函数(){return false;}//mozilla
注意:如果上述代码不适用于Firefox,则在body标签中添加style=“-moz user select:none”,这需要与上述代码一起进行限制。您是否尝试过禁用右键单击Dorabu说的内容,捕捉ctrl+C,但我们不使用右键单击来选择文本。如果用户使用鼠标选择文本并按ctrl+C怎么办?没有真正的方法可以避免一切;)某些站点上的数据可能是唯一的,如果作者不希望数据很容易被复制,在这种情况下,我们需要一些方法来阻止大多数用户,假设大多数用户不知道技术部分,如源代码或调试器,并且不使用任何过激的方法(例如转换成图像,使用图像服务器等)…因此我们可以使用下面回答的任何技术。更不用说任何主体都可以使用诸如Fiddler或Firebug之类的工具来捕获页面源!我们可以使用页面源轻松复制文本…i
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";
}
<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>