Javascript 如何从我的站点禁用(查看源代码)和(Ctrl+;C)

Javascript 如何从我的站点禁用(查看源代码)和(Ctrl+;C),javascript,Javascript,有没有机会从我的网站上禁用这两个东西? (查看源代码)和(Ctrl+C)这是不可能的。您可以尝试以某种方式混淆代码,但您需要向客户端发送一些内容,不是吗?可以使用AJAX调用加载html。这样,浏览器将显示的源几乎可以是空的。但是,您无法阻止有经验的用户查看您发送给客户端的所有内容。事实上,他/她可以使用太多的工具来重建页面,以至于任何你努力应用的技术都只会让他/她延迟几分钟 关于Ctrl-C,您可以添加javascript来阻止它,但这是无用的,因为用户总是可以禁用javascript。事实上

有没有机会从我的网站上禁用这两个东西?
(查看源代码)和(Ctrl+C)

这是不可能的。您可以尝试以某种方式混淆代码,但您需要向客户端发送一些内容,不是吗?可以使用AJAX调用加载html。这样,浏览器将显示的源几乎可以是空的。但是,您无法阻止有经验的用户查看您发送给客户端的所有内容。事实上,他/她可以使用太多的工具来重建页面,以至于任何你努力应用的技术都只会让他/她延迟几分钟

关于Ctrl-C,您可以添加javascript来阻止它,但这是无用的,因为用户总是可以禁用javascript。事实上,许多用户会发现拦截右键点击非常烦人


如果您正在构建一个intranet应用程序,或者您可以为用户提供一个集成浏览器来查看该应用程序,那么所有这些都有意义。对于公共html,我认为它甚至不值得尝试。一种解决方案是使用flash或其他插件构建应用程序。通过这种方式,您可以加密发送给客户端的所有内容。

这是不可能的。但如果您真的想避免复制信息,您可以生成带有文本的图像。当然,谷歌和其他搜索引擎不会为你的网站信息编制索引。但有时这是一个目标:-)

如果你真的不想把你的代码泄露出去,你就无能为力了


使用flash或java小程序将使其变得更困难,但即使这样也可以反编译。

最好的办法是混淆javascript。任何加密都必须让浏览器解密。第二十二条军规。

尝试禁用“查看源代码”和“ctrl-c”功能是毫无意义的,因为任何尝试都很容易绕过。您可以使用一些JavaScript阻止鼠标右键显示上下文菜单,但用户很容易禁用

如果是JavaScript,您可以使用JavaScript模糊处理程序或压缩程序来帮助隐藏代码

这里有几个让你开始


javascriptcompressor.com

无法阻止他人阅读您发送到浏览器的代码。即使你添加了浏览器技巧,他们也可以使用模仿浏览器的应用程序。最好的办法是把重要的代码移到服务器上,在那里他们无法获取

与其试图阻止别人窃取你的代码,不如在可用性、服务、先发优势等方面展开竞争

更新:你可以使用GoogleWebToolkit,因为那时你将在Java中工作,你的竞争对手/复制者将花时间解构你的Javascript


你想保护什么?HTML/Javascript/images/server locations?

如果您不希望用户查看您网页的代码,那么您应该编写自己的web浏览器并定义自己的HTML协议

但是,当您创建客户机应用程序并使用SOAP/Web服务向这些客户机发送数据时,您将能够在客户机看到的任何东西上隐藏代码。(他们需要一个调试器来“破解”你的应用程序。)


当然,分发此类应用程序的一种方法是使用Silverlight或Flash。它仍然会出现在启用Flash或Silverlight的浏览器中,但它们无法看到应用程序内部的任何代码。

将页面作为带有区域链接的光栅图像(JPG、PNG等)发送,而不是像其他人所说的文本xD

,这样做没有意义,事实上这是不可能的

这就像一家报纸分发报纸,但不让人们接受剪报。如果他们必须阅读它才能知道它是什么,那么他们可以复制它

如果用钢做报纸,他们只需要用激光剪下报纸的碎片,或者拍照


使文本不可见,没有人可以阅读。

可以禁用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
}),
快捷方式={
所有快捷方式:{},
加:功能(e、t、n){
变量r={
键入:“按键关闭”,
传播:!1,
禁用\u输入中的\u:!1,
目标:文件,
键代码:!1
};
如果(n)对于(r中的变量i)“未定义”==n[i]的类型和&(n[i]=r[i]);
否则n=r;
r=n.target,“string”==typeof n.target&&(r=document.getElementById(n.target)),e=e.toLowerCase(),i=function(r){
r=r | | window.event;
如果(n.在输入中禁用输入){
var i;
r、 target?i=r.target:r.srcmelement&(i=r.srcmelement),3==i.nodeType&(i=i.parentNode);
如果(“输入”==i.tagName | |“文本区域”==i.tagName)返回
}
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,
逃跑:27,
表9:,
空间:32,
“返回”:13,
输入:13,
退格:8,
滚动锁:145,
滚动锁定:145,
卷轴:145,
卡普斯洛克:20,
大写字母锁:20,
上限:20,
数量:144,
锁数:144,
总数:144,
暂停:19,
“中断”:19,
插入:45,
住址:36,
“删除”:46,
完:35,,
页码:33,
上页:33,
浦:33,,
下页:34,
下页:34,