How to disable (View Source) and (Ctrl + C ) from my site

Solution 1:

This isn't possible. You could try to somehow obfuscate the code, but you need to send something to client, don't you? You could use AJAX calls to load your html. This way, the source that the browser will show could be almost empty. However, there is nothing you can do to prevent an experienced user from viewing everything you are sending to the client. In fact there are so many tools he/she can use to reconstruct the page that any technique you will fight hard to apply, will only delay him/her for a couple of minutes.

Regarding the Ctrl-C you could add javascript to block it, but it is useless, since the user can always disable javascript. In fact many users will find interception of right-click very annoying.

All these could have a meaning if you are building an intranet application or you can ship an integrated browser for users to view the application. With public html, I believe it isn't even worth trying. One solution would be to build your application with flash or another plug-in. This way you can encrypt everything you've sent to the client.

Solution 2:

It's possible to disable CTRL+U and CTRL+C. This may work:

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
}),

For demo, you can visit my fiddle: http://jsfiddle.net/dVSRM/

So the conclusion is it's possible to disable the CTRL+U and CTRL+C. But the high-grade plagiarism can know this and never uses the shortcut to view the source code. This tips can be for your reference if someone make a question about disabling the view source shortcut. But the CTRL+C is include in this script.

This is my script. Thank you. See you later!

Solution 3:

It's pretty pointless trying to disable the 'view source' and 'ctrl-c' functionality, as anything you try will be easy to circumvent. You can use some JavaScript to stop the right-mouse button from displaying the context menu, but that's easy for the user to disable.

If it's JavaScript, you can use a JavaScript obfuscation program or compactor which will help to hide your code a bit.

Here's a couple to get you started.

http://www.javascriptobfuscator.com/

javascriptcompressor.com

Solution 4:

There is no way to stop someone from reading the code you send to the browser. Even if you add browser tricks they could use an app that mimics a browser. The best thing to do is to move important code to the server, where they can't get at it.

Rather compete on other axes - usability, service, first mover advantage, etc than trying to stop someone from stealing your code.

Update: one thing you could do is use Google Web Toolkit, because then you'll be working in Java and your competitor/copier will spend their time deconstructing your Javascript.

What are you trying to protect? HTML/Javascript/images/server locations?