我想知道我可以从浏览器中隐藏源代码(HTML PAGE 专用)。viewsource
? 如果yes
比怎么样?
如果no
不是其他方式来保护我的页面代码?
5 回答
不,你不能那样做。有效地隐藏 HTML是不可能的。
您可以阅读此内容,因为这将为您提供一些其他选择来保护您的页面。
源代码填充
真的,书中最古老的把戏。它涉及在代码开始之前添加大量空白,以便查看源菜单显示为空白。但是,必须所有人都会注意到滚动条并滚动以找到您的代码。尽管这种方法毫无意义和愚蠢,但仍有一些人使用它。
没有右键单击脚本
这些脚本阻止用户右键单击“查看源代码”功能所在的位置。缺点:众所周知,很难跨浏览器工作并真正正常工作。右键单击菜单或上下文菜单包括许多对用户有用的工具,包括导航按钮和“书签页面”按钮。大多数用户不喜欢禁用他们的浏览器功能,并且倾向于不重新访问此类页面。查看源功能也可通过顶部菜单使用。在浏览器顶部的主菜单栏中,选择查看,然后在子菜单中,您将看到“查看源代码”或类似内容。此外,还有诸如 Ctrl+U 之类的键盘快捷键可用于查看源代码。
“JavaScript 加密”
这是迄今为止尝试隐藏源代码的最流行的方法。它涉及获取您的代码,使用自定义函数以某种方式“加密”它,然后将其放入一个 HTML 文件以及一个将为浏览器解密它的函数。用户可以查看源代码,但是无法理解。缺点:您的网站仅适用于启用 JavaScript 的用户。这排除了搜索引擎、选择禁用 JavaScript 的用户以及使用没有 JavaScript 功能的文本浏览器(例如盲人)的用户。请记住,JavaScript 是一种奢侈品,而不是网络上的必需品。您必须包含一种解密页面的方法,以便浏览器可以显示它。懂 JavaScript 的人可以轻松解密页面。许多浏览器提供了解决此问题的替代方法。有些允许您保存页面,解密以便以后查看。其他的,比如 FireFox,包括像 DOM Inspector 这样的工具,它允许你轻松地查看和复制页面的 XML,解密。
HTML 保护软件
有一些不太诚实的人想要向您出售软件以快速方便地“保护”您的源代码。这类软件通常采用上述方法,以不同的方式隐藏您的源代码。许多人认为,如果他们购买它,它必须有效。它没有。正如我们所看到的,上述方法都很容易被规避,而这个软件所做的就是为你实施这些可怕的缺陷方法并拿走你的钱。不要爱上他们,我还没有看到一个有效的,他们永远不会。
如果将来链接失效,请复制内容。
如果你只是想隐藏你的 HTML,你可以在你的 body 标签中创建一个空的 DIV 标签,然后使用一个 ajax 回调到你的服务器来检索 HTML 的其余部分。然后,您将插入到 div 标签中,document.getElementById("div").innerHTML = ajax_content
用您的内容填充 div。
这只会对不了解 ajax/javascript 编码的内容作者隐藏您的 HTML。如果他们尝试查看页面源代码,他们应该只会看到空的 div 标记。
这种方法只是威慑,而不是回避。
正如其他人所说,您不能将代码隐藏到客户端,因为在网络上,客户端会下载您所有的 html、javascript 等 css 以便能够在其浏览器中显示它。
您唯一能做的就是在构建网站的发布版本时混淆和最小化您的代码。
这样,您将使试图窃取您的代码的“黑客”的工作复杂化。 http://en.wikipedia.org/wiki/Obfuscation_(软件)
http://en.wikipedia.org/wiki/Minification_(编程)
这是谷歌混淆代码的示例
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();
- 为该页面添加 htaccess 密码。如果用户可以访问页面并且页面是 HTML,那么用户可以看到源代码。但是如果他不能访问页面,用户就看不到代码:)
- 将 html 转换为图像并显示它而不是 html。不会有任何代码留给用户。
使用闪存版本。用户将能够下载闪存,但更难(仍然可能?)提取源。
- 以上都不是正确的方法。专注于提供好的内容,而不是隐藏它。
- 禁用右键是没用的。
- 混淆不会隐藏代码,但用户需要更多时间来获取它。
你不能。您可以使在页面上使用右键菜单变得有点棘手,但访问页面的源代码仍然微不足道。不要期望“保护”您页面的代码。