如何隐藏 HTML 页面的源代码
Posted
技术标签:
【中文标题】如何隐藏 HTML 页面的源代码【英文标题】:How to hide the source code of a HTML page 【发布时间】:2014-10-03 09:47:15 【问题描述】:我创建了一个 html 页面,现在想隐藏源代码并对其进行加密。
我该怎么做?
【问题讨论】:
其实有一个网站有这样的例子:therickroll.com如果你点击Ctrl+U,没有源代码。 【参考方案1】:您可以禁用右键单击,但这是个坏主意,因为专家可以从您的页面中读取任何内容。 您不能完全隐藏页面源 - 这是不可能的。互联网上没有什么是足够安全的。
无论如何,您都可以对其进行加密并设置密码。 您可以使用此链接 - 它会使用密码加密您的 HTML 页面。
首先,通过在标签后面写出这个脚本来禁用右键单击。
<SCRIPT language=javascript>
<!-- http://www.spacegun.co.uk -->
var message = "function disabled";
function rtclickcheck(keyp) if (navigator.appName == "Netscape" && keyp.which == 3) alert(message); return false;
if (navigator.appVersion.indexOf("MSIE") != -1 && event.button == 2) alert(message); return false;
document.onmousedown = rtclickcheck;
</SCRIPT>
然后,在这个网站上对所有内容进行加密,称为“AES 加密”。
链接 - http://aesencryption.net/
您需要设置密码才能解密......您选择密码。
加密后,您可以编写一个基本的 HTML 页面,再次将禁用右键单击的脚本放入 <head>
标签中,然后将其编码并隐藏所有刚刚写在顶部的内容页面<html hidden>
。
例子
<!DOCTYPE html>
<html hidden>
<head>
<SCRIPT language=JavaScript>
<!-- http://www.spacegun.co.uk -->
var message = "function disabled";
function rtclickcheck(keyp) if (navigator.appName == "Netscape" && keyp.which == 3) alert(message); return false;
if (navigator.appVersion.indexOf("MSIE") != -1 && event.button == 2) alert(message); return false;
document.onmousedown = rtclickcheck;
</SCRIPT>
</head>
<body>
--here, you put the encrypted code from the link above--
</body>
</html>
写在哪里var message = "function disabled";
你可以写例如“无法查看此页面”或会惹恼大多数用户并且会离开的内容。 ['此页面不可用'等等......]。
最后,您将看到一个空白页面,只要您右键单击该页面就会出现一条消息。该消息将类似于“此页面不再处于活动状态”。
例子
<SCRIPT language=JavaScript>
<!-- http://www.spacegun.co.uk -->
var message = "**This page is no longer active**";
function rtclickcheck(keyp) if (navigator.appName == "Netscape" && keyp.which == 3) alert(message); return false;
if (navigator.appVersion.indexOf("MSIE") != -1 && event.button == 2) alert(message); return false;
document.onmousedown = rtclickcheck;
</SCRIPT>
我知道可以使用一些附加组件(例如 Firebug)删除 <html hidden>
或 Javascript 脚本,但无论如何,您需要使用密码解密代码才能看到真实页面。
我认为,专家用户可能会使用蛮力攻击查看源代码。
所以,没有什么是安全的。
我发现了您需要在计算机上安装的应用程序。 企业版中有一项功能,但您必须付费才能获得它。此功能是一种加密 HTML 页面的工具,为 HTML 文件创建超强密码加密,使用多达 384 位密钥进行加密[我上面写的链接使用多达 256 位密钥进行加密]。 不过,我从未尝试过,因为它不是免费的。
无论如何,软件'HTML Guardian'的链接 - http://www.protware.com/default.htm 关于加密的功能,只需点击页面中的“超强HTML密码保护”即可。
【讨论】:
看到了这个,但是有没有办法进行这种加密并允许用户使用具有加密页面的页面源的网页?我在试用时注意到的是,即使用户也无法访问网页内容。【参考方案2】:你不能隐藏源代码,但是你可以通过以下方式添加一些困难来查看你的源代码
1.禁用右键单击:
<body oncontextmenu="return false">
2.禁用ctrl、u、F12键:
<script type="text/javascript">
function mousehandler(e)
var myevent = (isNS) ? e : event;
var eventbutton = (isNS) ? myevent.which : myevent.button;
if ((eventbutton == 2) || (eventbutton == 3)) return false;
document.oncontextmenu = mischandler;
document.onmousedown = mousehandler;
document.onmouseup = mousehandler;
function disableCtrlKeyCombination(e)
var forbiddenKeys = new Array("a", "s", "c", "x","u");
var key;
var isCtrl;
if (window.event)
key = window.event.keyCode;
//IE
if (window.event.ctrlKey)
isCtrl = true;
else
isCtrl = false;
else
key = e.which;
//firefox
if (e.ctrlKey)
isCtrl = true;
else
isCtrl = false;
if (isCtrl)
for (i = 0; i < forbiddenKeys.length; i++)
//case-insensitive comparation
if (forbiddenKeys[i].toLowerCase() == String.fromCharCode(key).toLowerCase())
return false;
return true;
</script>
3.在您盯着代码之前添加大量空白
它可能会欺骗某人
【讨论】:
【参考方案3】:真的没有办法阻止一个老练的人。
【讨论】:
【参考方案4】:真的没有办法做到这一点。也许您唯一能做的就是通过 JavaScript 禁用右键单击功能,但这仍然不会阻止有足够经验的用户复制它。但是,请检查this。
【讨论】:
【参考方案5】:我知道,有点晚了,但我猜你正在寻找一种叫做混淆的东西。例如,对于 Javascript 文件,有许多可用于构建网页的混淆工具。代码以不可读的格式传输。一些 VPS 提供商提供在构建过程中运行并为您完成这项工作的插件。
【讨论】:
【参考方案6】:对于 php,将您不想看到的代码与其余代码分开:
<?php
for($i=0;$i<1000000;$i++)
echo "\n";
?>
<some html="what you want to hide">
<?php
for($i=0;$i<1000000;$i++)
echo "\n";
?>
这将有效地杀死视图源方面(至少几分钟) 如果是观看源,他是不会等结果的。 此外,这似乎不会减慢页面加载速度
【讨论】:
以上是关于如何隐藏 HTML 页面的源代码的主要内容,如果未能解决你的问题,请参考以下文章