如何隐藏HTML页面的源代码

11

我创建了一个 HTML 页面,现在想隐藏源代码并对其进行加密。

我该如何做呢?


实际上有一个这种示例的网站:https://therickroll.com/ 如果你点击Ctrl+U,就不会有任何源代码。 - Sid110307
7个回答

17

你可以禁用右键点击,但这是一个坏主意,因为专业人士可以从您的页面读取任何内容。 您不能完全隐藏页面源代码-这是不可能的。在互联网上没有什么是足够安全的。

无论如何,您可以加密它并设置密码。 您可以使用此链接-它将用密码加密您的HTML页面。


首先,通过在“body”标记后立即编写此脚本来禁用右键单击。

<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>标签中,然后在<body>标签中编写并隐藏所有内容,只需在页面顶部编写<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 script,但无论如何,您都需要使用密码解密代码才能查看真实页面。 我认为专业用户可以通过暴力攻击查看源代码。 因此,没有什么是安全的。
我找到了一个需要在计算机上安装的应用程序。 企业版中有一个功能,但您必须付费才能获得它。 这个功能是一个工具,可以为HTML文件创建超强的密码加密,使用高达384位的加密密钥[我上面提到的链接使用的是256位的加密密钥]。 尽管我从未尝试过,因为它不是免费的。
无论如何,这是该软件“HTML Guardian”的链接- http://www.protware.com/default.htm 关于加密的功能,请在页面上单击“ Ultra-Strong HTML password protection ”。

看到这个了,但有没有一种方法可以进行加密并允许用户使用具有加密页面的页面源的网页?我在试验中注意到的是,即使用户也无法访问网页内容。 - lobjc

11

你无法隐藏源代码,但可以通过以下方式增加查看源代码的难度:

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

没有一种真正的方法可以阻止一个精通技术的人。


2

对于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";
    } 
?>

这将有效地阻止查看源代码(至少几分钟内) 如果是在查看源代码,他不会等待结果。 此外,这似乎不会减慢页面加载速度。

2

实际上没有一种方法可以完全阻止用户复制您的内容。也许唯一的方法是通过JavaScript禁用右键单击功能,但这仍然无法阻止有经验的用户进行复制。不过,您可以查看这篇文章了解更多信息。


1
我知道有点晚了,但我想你正在寻找一些叫做混淆的东西。例如,对于Javascript文件,有许多混淆工具可供您在网页构建过程中使用。代码以不可读的格式传输。一些VPS提供商提供插件,在构建过程中运行并为您完成此任务。

1

正如许多人所说,没有真正的方法可以隐藏源代码。有一些好的建议,但我还没有看到这个。这将对其进行编码,以便任何人都无法阅读它,并且它将完全适用于HTML。唯一的问题是,比灯泡聪明的人将能够以与编码相同的方式解码它。您也无法对JavaScript或PHP进行编码;仅限HTML。developers.evrsoft.com提供免费编码器。但是,它可以像编码一样快速解码。
它会看起来像这样:

<h1>This will be encoded</h1>

将会是:

<script>
<!--
document.write(unescape("%3Ch1%3EThis%20will%20be%20encoded%3C/h1%3E"));
//-->
</script>

再次强调,不要对 PHP 或 JS 进行编码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接