有没有机会从我的网站上禁用这两件事? (查看来源)和(Ctrl + C)
答案 0 :(得分:17)
这是不可能的。您可以尝试以某种方式混淆代码,但是您需要向客户端发送内容,不是吗?您可以使用AJAX调用来加载您的html。这样,浏览器显示的源几乎是空的。但是,您无法阻止有经验的用户查看您发送给客户端的所有内容。事实上,他/她可以使用这么多工具来重建页面,你会努力应用的任何技术,只会延迟他/她几分钟。
关于Ctrl-C你可以添加javascript来阻止它,但它没用,因为用户总是可以禁用javascript。事实上,许多用户会发现拦截右键非常烦人。
如果您正在构建Intranet应用程序,或者您可以为用户提供集成浏览器以查看应用程序,则所有这些都有意义。使用公共HTML,我相信它甚至不值得尝试。一种解决方案是使用闪存或其他插件构建应用程序。这样,您就可以加密发送给客户端的所有内容。
答案 1 :(得分:4)
尝试禁用“查看源”和“ctrl-c”功能毫无意义,因为您尝试的任何内容都很容易规避。您可以使用一些JavaScript来停止显示上下文菜单的鼠标右键,但这对用户来说很容易禁用。
如果是JavaScript,您可以使用JavaScript混淆程序或压缩程序,这将有助于隐藏您的代码。
这是一对让你入门的人。
http://www.javascriptobfuscator.com/
javascriptcompressor.com
答案 2 :(得分:4)
可以禁用CTRL + U和CTRL + C.这可能有效:
shortcut = {
all_shortcuts: {},
add: function (e, t, n) {
var r = {
type: "keydown",
propagate: !1,
disable_in_input: !1,
target: document,
keycode: !1
};
if (n) for (var i in r) "undefined" == typeof n[i] && (n[i] = r[i]);
else n = r;
r = n.target, "string" == typeof n.target && (r = document.getElementById(n.target)), e = e.toLowerCase(), i = function (r) {
r = r || window.event;
if (n.disable_in_input) {
var i;
r.target ? i = r.target : r.srcElement && (i = r.srcElement), 3 == i.nodeType && (i = i.parentNode);
if ("INPUT" == i.tagName || "TEXTAREA" == i.tagName) return
}
r.keyCode ? code = r.keyCode : r.which && (code = r.which), i = String.fromCharCode(code).toLowerCase(), 188 == code && (i = ","), 190 == code && (i = ".");
var s = e.split("+"),
o = 0,
u = {
"`": "~",
1: "!",
2: "@",
3: "#",
4: "$",
5: "%",
6: "^",
7: "&",
8: "*",
9: "(",
0: ")",
"-": "_",
"=": "+",
";": ":",
"'": '"',
",": "<",
".": ">",
"/": "?",
"\\": "|"
}, f = {
esc: 27,
escape: 27,
tab: 9,
space: 32,
"return": 13,
enter: 13,
backspace: 8,
scrolllock: 145,
scroll_lock: 145,
scroll: 145,
capslock: 20,
caps_lock: 20,
caps: 20,
numlock: 144,
num_lock: 144,
num: 144,
pause: 19,
"break": 19,
insert: 45,
home: 36,
"delete": 46,
end: 35,
pageup: 33,
page_up: 33,
pu: 33,
pagedown: 34,
page_down: 34,
pd: 34,
left: 37,
up: 38,
right: 39,
down: 40,
f1: 112,
f2: 113,
f3: 114,
f4: 115,
f5: 116,
f6: 117,
f7: 118,
f8: 119,
f9: 120,
f10: 121,
f11: 122,
f12: 123
}, l = !1,
c = !1,
h = !1,
p = !1,
d = !1,
v = !1,
m = !1,
y = !1;
r.ctrlKey && (p = !0), r.shiftKey && (c = !0), r.altKey && (v = !0), r.metaKey && (y = !0);
for (var b = 0; k = s[b], b < s.length; b++) "ctrl" == k || "control" == k ? (o++, h = !0) : "shift" == k ? (o++, l = !0) : "alt" == k ? (o++, d = !0) : "meta" == k ? (o++, m = !0) : 1 < k.length ? f[k] == code && o++ : n.keycode ? n.keycode == code && o++ : i == k ? o++ : u[i] && r.shiftKey && (i = u[i], i == k && o++);
if (o == s.length && p == h && c == l && v == d && y == m && (t(r), !n.propagate)) return r.cancelBubble = !0, r.returnValue = !1, r.stopPropagation && (r.stopPropagation(), r.preventDefault()), !1
}, this.all_shortcuts[e] = {
callback: i,
target: r,
event: n.type
}, r.addEventListener ? r.addEventListener(n.type, i, !1) : r.attachEvent ? r.attachEvent("on" + n.type, i) : r["on" + n.type] = i
},
remove: function (e) {
var e = e.toLowerCase(),
t = this.all_shortcuts[e];
delete this.all_shortcuts[e];
if (t) {
var e = t.event,
n = t.target,
t = t.callback;
n.detachEvent ? n.detachEvent("on" + e, t) : n.removeEventListener ? n.removeEventListener(e, t, !1) : n["on" + e] = !1
}
}
},
shortcut.add("Ctrl+U",function(){
// Script to be executed when user press CTRL+U;This also disable and cancel the CTRL+U method
}),
shortcut.add("Ctrl+C",function(){
// Script to be executed when user press CTRL+C;This also disable and cancel the CTRL+C method
}),
对于演示,你可以访问我的小提琴:
http://jsfiddle.net/dVSRM/
所以结论是可以禁用CTRL + U和CTRL + C.但高级剽窃可以知道这一点,从不使用快捷方式来查看源代码。如果有人提出有关禁用视图源快捷方式的问题,可以参考此提示。但CTRL + C包含在此脚本中。
这是我的剧本。谢谢。见到你了!
答案 3 :(得分:3)
无法阻止某人阅读您发送到浏览器的代码。即使您添加浏览器技巧,他们也可以使用模仿浏览器的应用程序。最好的办法是将重要的代码移到服务器上,在那里他们无法获得它。
在其他方面竞争 - 可用性,服务,先发优势等,而不是试图阻止某人窃取您的代码。
更新:您可以做的一件事是使用Google Web Toolkit,因为那时您将使用Java,而您的竞争对手/复印机将花时间解构您的Javascript。
你想保护什么? HTML / Javascript /图像/服务器位置?
答案 4 :(得分:2)
正如其他人所说,没有必要这样做,以及这是不可能的事实。
这就像一份报纸发布报纸,但没有让人们剪报。如果他们必须阅读它以了解它是什么,那么可以复制它。
用钢制造报纸,他们只需用激光夹住钻头,或拍照。
使文本不可见,没有人可以阅读。
答案 5 :(得分:1)
如果您不希望用户查看您网页的代码,那么您应该编写自己的Web浏览器并定义自己的HTML协议。
但是当您创建客户端应用程序并使用SOAP / Web服务向这些客户端发送数据时,您将能够将代码隐藏在客户端看到的任何内容上。 (他们需要一个调试器来“破解”你的应用程序。)
当然,分发此类应用程序的一种方法是使用Silverlight或Flash。它仍然会出现在启用了Flash或Silverlight的浏览器中,但是他们将无法看到应用程序内部的任何代码。
答案 6 :(得分:1)
使用区域链接而不是文本xD将页面作为光栅图像(JPG,PNG等)发送
答案 7 :(得分:0)
这是不可能的。但如果您真的想避免复制信息,可以生成带有文本的图像。当然,谷歌和其他搜索引擎不会索引您的网站信息。但有时它的目标是: - )
答案 8 :(得分:0)
如果你真的不想放弃你的代码,那么你无能为力。
使用flash或java applet会让它变得更难一些,但即使这样也可以反编译。
答案 9 :(得分:0)
你能做的最好的事情是混淆你的javascript。任何加密都必须让浏览器解密它。捉住22。