我想知道我可以隐藏浏览器的源代码(HTML PAGE专用)。viewsource
?
如果yes
比如何?
如果no
比其他方式保护我的页面代码?
答案 0 :(得分:5)
不,你不能这样做。不可能有效地隐藏HTML。
您可以阅读this,因为这会为您提供其他一些保护您网页的方法。
源代码填充
真的,这本书中最古老的伎俩。它涉及添加一吨 代码启动前的空白区域,以便查看源菜单 显得空白。但是,所有人都必须注意滚动条 并将滚动以查找您的代码。毫无意义和愚蠢 这个方法是,还有一些人还在使用它。
没有右键点击脚本
这些脚本阻止用户右键单击“查看源” 功能位于。缺点:众所周知,难以解决问题 浏览器和实际工作正常。右键单击菜单,或 上下文菜单,包括许多有用的用户工具,包括 导航按钮和“书签页面”按钮。大多数用户没有 请善用他们的浏览器功能禁用 倾向于不重访这些页面。 View Source功能也是 通过顶部菜单提供。在顶部的主菜单栏 您的浏览器,选择查看,然后在子菜单中,您将看到“查看” 来源“或类似的东西。此外,有键盘快捷键,如 Ctrl + U可用于查看源。所有这些方法都是添加 对于试图查看您的源和它的人大约两秒钟的延迟 确实会激怒那些不想查看你的来源的用户。
“JavaScript加密”
这是迄今为止尝试隐藏某个源代码的最常用方法。 它涉及使用自定义函数来获取代码 以某种方式“加密”它,然后将它与一个HTML文件放在一起 将为浏览器解密的功能。用户可以查看 然而,来源却是不可理解的。缺点:您的网站是 仅适用于启用了JavaScript的用户。这排除了搜索 引擎,选择禁用JavaScript的用户以及使用 没有JavaScript的文本浏览器(如盲人) 能力。请记住,JavaScript是一种奢侈品,而不是必需品 网页。您必须包含一种解密页面的方法,以便浏览器 可以显示它。了解JavaScript的人可以轻松解密 这页纸。许多浏览器都提供了替代方法。一些 允许您保存页面,解密以便日后查看。其他, 像FireFox一样,包括DOM Inspector之类的工具,它可以让你 轻松查看和复制页面的XML,解密。
HTML保护软件
有些不太诚实的人想要卖给你软件 快速方便地“保护”您的源代码。这类 软件通常以不同的方式使用上述方法来隐藏 你的源代码。许多人认为,如果他们购买它,它 必须工作。它没有。正如我们所见,上述方法都很容易 被规避的,所有这些软件确实实现了这些可怕的 有缺陷的方法,你拿钱。我不喜欢他们 还没看到一个有效的,但他们永远不会。
如果链接将来死亡,请复制内容。
答案 1 :(得分:1)
如果您只是想隐藏HTML,可以在body标签中创建一个空的DIV标签,然后使用ajax回调到服务器以检索HTML的其余部分。然后,您将使用document.getElementById("div").innerHTML = ajax_content
插入div标签,以使用您的内容填充div。
这只会隐藏不了解ajax / javascript编码的内容作者的HTML。如果他们试图查看页面源,他们应该只看到空的div标签。
这种方法只是一种威慑,而不是回避。
答案 2 :(得分:0)
正如其他人所说,你无法将你的代码隐藏到客户端,因为在网络上,客户端会下载你所有的html,javascript和css,以便能够在浏览器中显示它。
您唯一能做的就是在构建网站发布版本时对代码进行模糊处理和最小化。
这样,你会使试图窃取你的代码的“黑客”的工作复杂化。 http://en.wikipedia.org/wiki/Obfuscation_(software)
http://en.wikipedia.org/wiki/Minification_(programming)
以下是Google混淆代码的示例
var _=_||{};(function(_){var window=this;
try{
var aaa;var cb;_.ha=function(){return function(a){return a}};_.wa=function(){return function(){}};_.xa=function(a){return function(b){this[a]=b}};_.ya=function(a){return function(){return this[a]}};_.Aa=function(a){return function(){return a}};_.Fa=function(a,b,c){a=a.split(".");c=c||_.Ga;a[0]in c||!c.execScript||c.execScript("var "+a[0]);for(var d;a.length&&(d=a.shift());)a.length||void 0===b?c=c[d]?c[d]:c[d]={}:c[d]=b};
_.La=function(a,b){for(var c=a.split("."),d=b||_.Ga,e;e=c.shift();)if(null!=d[e])d=d[e];else return null;return d};_.Ma=function(){};_.Oa=function(a){a.H=function(){return a.JS?a.JS:a.JS=new a}};
_.Pa=function(a){var b=typeof a;if("object"==b)if(a){if(a instanceof Array)return"array";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);if("[object Window]"==c)return"object";if("[object Array]"==c||"number"==typeof a.length&&"undefined"!=typeof a.splice&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("splice"))return"array";if("[object Function]"==c||"undefined"!=typeof a.call&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("call"))return"function"}else return"null";
else if("function"==b&&"undefined"==typeof a.call)return"object";return b};_.Ra=function(a){return void 0!==a};_.Ta=function(a){return"array"==(0,_.Pa)(a)};_.Ua=function(a){var b=(0,_.Pa)(a);return"array"==b||"object"==b&&"number"==typeof a.length};_.Va=function(a){return"string"==typeof a};_.Ya=function(a){return"number"==typeof a};_.Za=function(a){return"function"==(0,_.Pa)(a)};_.ab=function(a){var b=typeof a;return"object"==b&&null!=a||"function"==b};_.bb=function(a){return a[cb]||(a[cb]=++aaa)};
var baa=function(a,b,c){return a.call.apply(a.bind,arguments)};var caa=function(a,b,c){if(!a)throw Error();
答案 3 :(得分:0)
使用flash版本。用户将能够下载闪存,但是更难(仍然可以吗?)来提取源。
答案 4 :(得分:-1)
你做不到。您可以在页面上使用右键单击菜单稍微有点棘手,但访问页面源仍然很简单。不要指望“保护”您网页的代码。