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

IT技术 javascript
2021-03-06 02:55:07

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

6个回答

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

关于 Ctrl-C,您可以添加 javascript 来阻止它,但它没有用,因为用户始终可以禁用 javascript。其实很多用户会觉得拦截右键很烦。

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

无论您如何努力混淆代码,最终您都需要有一个有意义的 DOM 树,否则浏览器将不会呈现它——一旦您有了 DOM 树,Bugzilla 或 Webkit Inspector 就会显示所有内容。
2021-04-16 02:55:07
@Bhavi:你不能,就这么简单。无论您想隐藏什么,都应该存储在 HTML 之外的其他地方,或者您应该接受它是公开的事实。
2021-04-21 02:55:07
那么该怎么做,请提出建议
2021-04-26 02:55:07
@Bhavi 您似乎设法找到了一些试图阻止上下文菜单的丑陋(非常丑陋,它使用所有内容的 navigator.appName)代码。如前所述,这不是很有效。(虽然这很烦人)。您无法阻止人们访问交付给浏览器的 HTML/CSS/JS 源代码(并且必须交付给浏览器才能工作)。接受这个事实,继续前进。
2021-04-29 02:55:07
var isnn,isie if(navigator.appName=='Microsoft Internet Explorer') //检查浏览器 { isie=true } if(navigator.appName=='Netscape') { isnn=true } function right(e) //捕获右键单击按钮 { if (isnn && (e.which == 3 || e.which == 2 )) return false; else if (isie && (event.button == 2 || event.button == 3)) { alert("抱歉,您没有右键单击此页面的权限。"); 返回假;返回真;}
2021-05-05 02:55:07

可以禁用 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 包含在此脚本中。

这是我的脚本。谢谢你。回头见!

不错,虽然您可以在地址栏中按 Crtl+U。
2021-04-15 02:55:07

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

如果是 JavaScript,您可以使用 JavaScript 混淆程序或压缩程序,这将有助于隐藏您的代码。

这里有一些可以帮助您入门。

http://www.javascriptobfuscator.com/

javascriptcompressor.com

这就是(部分)在这种情况下“易于规避”的含义。
2021-04-24 02:55:07
但是 JS 可以很容易地被客户端在他的机器上禁用
2021-05-15 02:55:07

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

与其在其他方面竞争 - 可用性、服务、先发优势等,而不是试图阻止某人窃取您的代码。

更新:您可以做的一件事是使用 Google Web Toolkit,因为那时您将使用 Java,而您的竞争对手/复制者将花时间解构您的 Javascript。

你想保护什么?HTML/Javascript/图像/服务器位置?

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

那么这种方法可能对 SEO 不友好
2021-04-15 02:55:07
你不能拥有一切:-p
2021-04-19 02:55:07