如何使用PHP加密HTML源代码输出

17

我希望阻止新手用户查看源代码。我有一段生成html页面的php代码。

编辑1: 我发现了一个简单的工具,可以将html代码加密成%C%D%F,而在浏览器中仍然可以正常使用。


10
为什么会有人踩这个问题?它是一个完全合理的问题。虽然无法实现,但这个事实并不重要。 - Graeme Perrow
6
也许他想防止自己看到源代码? :-) 糟糕,在你编辑评论之前那句话更有趣! - Andy E
3
出于好奇 - 你的HTML有什么重要性,需要加密吗? - thetaiko
5
试图“保护”图片从多个角度来看都是注定要失败的。要么放弃,要么逼疯自己。 - bobince
5
我真的不理解为什么像这样的问题会被踩。我们知道你无法隐藏HTML或JavaScript,但这并不是惩罚那些还不知道这一点的人的理由。只需回答问题即可……或不回答……然后继续前行。如果他发布的问题明显与主题无关或者是个“替我完成工作”的问题,那就是另一回事了。 - Bradley Mountford
显示剩余7条评论
6个回答

17

您无法加密发送给用户的HTML输出。如果这样做,他们将无法加载网页。

如果您担心用户会看到PHP代码,那么您不必担心。用户永远不会看到PHP代码-它在服务器上被处理并转换为HTML后再发送给客户端。


2
+1 可以混淆HTML,但由于没有变量和函数可以给出混淆的名称,所以这是徒劳无功的练习,并且可以在几秒钟内使用HTML格式化程序恢复。 - Pekka
我用错了词,应该是编码而不是加密。 - user244333

7

正如@Jeff所说,您无法加密HTML输出,但可以混淆它以使人类更难理解。 这里提供了一个免费的产品来实现这一点。


4

请参见:http://farhadi.ir/works/rc4

两个简单的库允许你在PHP中进行编码,并在Javascript中进行解码。在输出时,只需设置HTML框架,然后在document.ready函数中使用密钥和加密字符串运行解密,并使用解密结果填充<body>标签。

当然,这仅适用于启用了Javascript的情况。否则,用户将看不到任何有用的信息。你也正在以明文传递你的秘密密钥,这是可以接受的,因为你只想防止“初学者”用户访问你的源代码。我认为这对于防止某人从你的网站上获取图片并没有多大帮助。你最好使用.htaccess来做到这一点。请查看http://bignosebird.com/apache/a13.shtmlGoogle


1

我认为你无法加密HTML。它必须由客户端浏览器解释,如果你使用了不同的语言,它将无法工作。


1
你可以加密任何东西。我想你的意思是浏览器没有设置来处理加密的HTML。 - thetaiko

0
你应该使用JavaScript的escape/unescape函数,这样对人类来说更难以破译但不影响浏览器。

0
你可以使用这个方法,有点儿狡猾,但很有效: http://www.dynamicdrive.com/dynamicindex9/encrypter.htm 它会将你的HTML代码加密成一个javascript的document.write行。
虽然不是真正的加密,但能够阻止超过一半的人查看源代码。
祝愉快。

1
这种做法其实有点无礼,因为你基本上是在告诉禁用 JavaScript 的用户滚开。 - Andy E
这是非常无礼的,因为HTML必须以某种方式到达浏览器。面对现实吧:如果用户能看到它,用户就能看到它是如何制作的。使用JavaScript来实现这一点会暴露你的网站不值得点击。 - nc3b
1
现在,现在,你们两个冷静下来……今天这里有些非常激动、青春期烦恼的人。叹息冷静一点……HTML是无法加密的,因为客户端浏览器仍然需要解释它。 - Barrie Reader
3
您不仅可以防止新手用户花费时间在上面,还可以防止谷歌浪费时间在上面。 - thetaiko

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