【问题标题】:can i hide the html source code from the browser view source? [duplicate]我可以从浏览器视图源中隐藏 html 源代码吗? [复制]
【发布时间】:2013-08-21 16:36:02
【问题描述】:

我想知道我可以从浏览器中隐藏源代码(HTML PAGE 专用)吗?viewsource? 如果yes比怎么办?
如果no 不是保护我的页面代码的其他方式?

【问题讨论】:

  • 没有完整的证明方法。但这里有一些可以用来隐藏源代码的策略,使用“window.history.pushState()”并在 body 标记中添加oncontextmenu="return false"attribute,例如<body oncontextmenu="return false"> 也禁用右键单击以及使用“history.pushState()”修改视图源内容。详情在这里 - freelancer.usercv.com/blog/28/…

标签: internet-explorer google-chrome firefox safari


【解决方案1】:

不,你不能这样做。有效地隐藏 HTML 不可能

您可以阅读this,因为这将为您提供一些其他方法来保护您的网页。

源代码填充

真的,书中最古老的把戏。它涉及添加一吨 代码开始前的空白,以便查看源菜单 显示为空白。但是,必须所有人都会注意到滚动条 并将滚动查找您的代码。无意义和愚蠢 这个方法,还有人用。

无右键单击脚本

这些脚本阻止用户右键单击,其中“查看源代码” 功能所在。缺点:出了名的难以跨越 浏览器并实际正常工作。右键菜单,或 上下文菜单,包括许多对用户有用的工具,包括 导航按钮和“书签页面”按钮。大多数用户不 请善待他们的浏览器功能被禁用,并且 倾向于不重新访问此类页面。查看源代码功能也是 可通过顶部菜单获得。在顶部的主菜单栏 在您的浏览器中,选择查看,然后在子菜单中,您将看到“查看 源”或类似的东西。此外,还有键盘快捷键,如 Ctrl+U 可用于查看源代码。这个方法所做的只是添加 有人试图查看您的来源和它的延迟大约两秒钟 确实会激怒那些不想查看您的源的用户。

“JavaScript 加密”

这是迄今为止尝试隐藏源代码的最流行的方法。 它涉及获取您的代码,使用自定义函数 以某种方式“加密”它,然后将它与一个 HTML 文件一起放入 将为浏览器解密它的函数。用户可以查看 但是,来源是无法理解的。缺点:您的网站是 仅适用于启用 JavaScript 的用户。这排除了搜索 引擎、选择禁用 JavaScript 的用户以及使用 没有 JavaScript 的文本浏览器(例如盲人) 能力。请记住,JavaScript 是奢侈品,而不是必需品 网。您必须包含一种解密页面的方法,以便浏览器 可以显示它。懂 JavaScript 的人可以轻松解密 这页纸。许多浏览器提供了解决此问题的替代方法。一些 允许您保存页面,解密以便以后查看。其他, 像 FireFox,包括像 DOM Inspector 这样的工具,它允许你 轻松查看和复制页面的 XML,解密。

HTML 保护软件

有些不诚实的人想向您推销软件 快速方便地“保护”您的源代码。这类 软件通常采用上述方法,以不同的方式隐藏 你的源代码。很多人认为,如果他们购买它,它 必须工作。它没有。如我们所见,上述方法都很容易 被规避了,而这个软件所做的就是可怕地实现这些 为您提供有缺陷的方法并拿走您的钱。不要爱上他们,我已经 还没有看到一个有效的,而且他们永远不会。

复制内容以防万一将来链接失效。

【讨论】:

  • 有一个网站可以完美隐藏如:view-source:shopee.com.my
【解决方案2】:

如果你只是想隐藏你的 HTML,你可以在你的 body 标签中创建一个空的 DIV 标签,然后使用一个 ajax 回调到你的服务器来检索 HTML 的其余部分。然后,您将使用 document.getElementById("div").innerHTML = ajax_content 插入 div 标记,以使用您的内容填充 div。

这只会对不了解 ajax/javascript 编码的内容作者隐藏您的 HTML。如果他们尝试查看页面源代码,他们应该只会看到空的 div 标签。

这种方法只是威慑,不是回避。

【讨论】:

  • 当然这不是好的做法。但是很高兴您实际上找到了一种方法!
【解决方案3】:

正如其他人所说,您无法将代码隐藏给客户端,因为在网络上,客户端会下载您所有的 html、javascript 等 css 以便能够在其浏览器中显示它。

您唯一能做的就是在构建网站的发布版本时混淆和最小化您的代码。

这样,您将使试图窃取您的代码的“黑客”的工作复杂化。 http://en.wikipedia.org/wiki/Obfuscation_(software)

http://en.wikipedia.org/wiki/Minification_(programming)

这是一个谷歌混淆代码的例子

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();

【讨论】:

    【解决方案4】:
    1. 为该页面添加 htaccess 密码。如果用户可以访问页面并且页面是 HTML,那么用户可以看到源代码。但是如果他不能访问页面,用户就看不到代码:)
    2. 将 html 转换为图像并显示它而不是 html。不会有任何代码留给用户。
    3. 使用 Flash 版本。用户将能够下载 Flash,但更难(仍然可能?)提取源代码。

      • 以上所有方法都不是正确的方法。专注于提供好的内容,而不是隐藏它。
      • 禁用右键没用。
      • 混淆不会隐藏代码,但用户需要更多时间才能得到它。

    【讨论】:

      【解决方案5】:

      你不能。您可以使在页面上使用右键菜单变得有点棘手,但访问页面的源代码仍然微不足道。不要期望“保护”您网页的代码。

      【讨论】:

      • 因冷酷的事实而被否决。只需要一个网络蜘蛛来绕过右键单击脚本,以及所有其他界面技巧。如果你认为你可以保护 HTML,那你的日子就不好过了。
      • 是的,你可以。看这个网站:view-source:shopee.com.my
      猜你喜欢
      • 2014-02-12
      • 1970-01-01
      • 2021-04-29
      • 1970-01-01
      • 2019-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-28
      相关资源
      最近更新 更多