将HTML混淆的PHP代码?

3
我知道,我知道 - 模糊的html/js代码是无用的(我在Stack Overflow上读过其他问题),但我仍然希望让我的网站剽窃者的生活更加困难...
我运行一个基于php的网站,生成html输出。我希望最终的html输出(其中包含html、js、json和使用ajax)被模糊化。有没有用于此目的的php函数?我找到了http://www.ioncube.com/html_encoder.php,但这依赖于他们的一些特殊软件加载到服务器上 - 也就是说,不可行...
有什么建议吗?

15
不过,使用Firebug查看他们的页面我并没有遇到任何问题... :\ - peirix
我同意这是一个愚蠢的问题。什么让你觉得自己如此特别,当很多非常优秀的设计师/开发人员(Zeldman、Shea、Cederholm等)不会混淆他们的HTML呢? - user159895
1
像其他人说的一样:不要费心了。如果有人想查看你的代码,他们可以使用正确的工具来做到这一点。这是一场失利的战斗。你会花更多时间来混淆代码,而那些想要查看你的代码的人则可能不需要太多时间。此外,你的页面将无法被搜索引擎索引,因为你的页面需要启用JavaScript。我偷看了ioncube的代码,发现它的代码运行缓慢(在IE上非常慢)。只需不到2分钟的时间,就可以使其在所有浏览器上快两倍以上,在IE上甚至更快(没有研究量化多少)。 - some
Facebook混淆了它的HTML代码。我认为混淆HTML并不是一个坏主意。 - Taleh Ibrahimli
5个回答

7

并不是真正的混淆,而是在大多数情况下很难阅读(并且占用带宽更少!)

<?php
ob_start();

// Generate output here

$output = ob_get_contents();
ob_end_clean();

$output = preg_replace('\s{2,}',' ', $output);
echo $output;
?>

4
<pre>标签中的文本怎么办? - Pierre Bourdon
我只使用压缩的CSS和JavaScript来减小文件大小,而不是为了混淆代码。但对于HTML,你可以在回调函数中处理它。 - Xinus
@delroth:很抱歉,对于<pre>标签没有任何支持。我猜可以使用HTTP解析器或稍微有趣一些的正则表达式相对容易地完成,但是现在除了像SO这样允许发布代码的网站之外,<pre>元素还有多少用处呢?另外,你的名字很不错。:P - Duroth
如果您想进一步减小大小,请检查浏览器是否支持即时压缩并压缩数据。 - some
@Xinus:我只能看到pre标签的width属性已被弃用,而不是标签本身。 - some

3

1

在我对HTML混淆器的研究中,像http://htmlobfuscator.com/这样的工具确实会将其“特殊”代码转换为反转的base64格式。当我们解码它时,它们实际上是使用Google上可以找到的打包程序来打包的js文件。

所以,现在我们可以这样做——先将整个HTML斜杠化,然后对JS字符串进行“打包”,再将其编码为base64格式,最后旋转编码后的字符串。就完成了。你会得到像这样的结果:

var IO1='KkSKpcCfngCdpxGcz5yJr9GfwRHdox3YyNHfmVmc8NmczRXZnxXZtFmTnFGV5J0c05WZtVGbFRXZnxXawFWeyVWdxpGf0BXayN2c8xmc1xXZwF2YzVmb1xnclJnclZWZyxHZslGaDRmblBHchx3bm5Wa8VGdpJ3d8xHduVWblxWRlRXYlJ3Y8VGb0lGdDNDfDJDfs1GdoxXek9mYDNDfyl2cwIDf0NXZ0V0M8x3bsxWZIV0M8VGb0lGd8RWYlh2QzwHbtRHaDNDfMJVV8V0M8FTSPxHduVmbvBXbvNUSSVVZk92YuVGfJ9US8RWYlhGfyFmd8N0M8JjN8JTO8hzM8Rnbl1Wdj9GZ8VGchN2cl9Ff5R2bixHbhZXZ8ZzM8VzM8VGZvNkchh2Qt9mcmxHdpxGczx3Zulmc0N1b0xHc4V0ZlJFf05WSlNnchBHf3Vmb8VGbph2d8ZWa8dmbpJHdTxXZjFGbwVmc85mc1RXZyxnbvlGdj5WdmxHf8xHf8xHf8xHf8xHf8xHf8xHf8xHf8xHf8xHf8xHf8xHf8xHf8xHf8xHf8xHf8xHf8xHf8xHf8xHf8xHf8xHf8xHf8xHf8xHf8xHf8xHf8xHf8xHf8xHf8xHfnwCO0EDLyYDLnkSK9tHLwwSKnwFfnwFKFFjLnwFNywnNyw3NywHOywnYyw3MywnMywHWxw3VxwXWxwnWxwHMywXYywnZywXbyw3aywnaywHbywnbywHaywHZywXayw3YywXZyw3ZywXNywnUxwnSxwXOywRxwnRxwHexwHRxwHSxw3QxwXQxw3dxwnexwXexw3RxwXVxwnQxw3Sxw3UxwXMywHVxwXUxwHUxwXSxwnVxwHTxwndxwXdxwXTxwHf8xHf8xHf8xHf8xHf8xHf8xHf8xHf8xHf8xHf8xHf8xHf8xHfnwFLOFDLPFDLnwVKpkyJcxFX8dCXcxFKwEjLnwFXcNWM8JWM8RWM8VWM8ZWM8FWM8lTM8VTM8hWM8ZTM8dTM8hTM8dWM8xWM8BXM8NXM8JXM8RXM8FXM85WM8pWM8lWM8tWM89WM81WM8RTM8JTM8xEfLxXT85EfzEDfKxHU8lEfGx3R8dCXcxFLDxyQscCXcx1OpkyNoMHK05iM7kCNoInL4sTXwsVKnwFXcxFXcxlNnwFXcxFXcxFKx5iM9gDI1sTKv5iMokzKnwFXcxFXcxVPwZyJcxFXcxFXctSK25iMokzKnwFXcxFXcxVP5ZyJcxFXcxFXctyJcxFXcxFXcFUP69zLu5ydv8iO4dCXcxFXcxFX9IkL0s

祝你好运~


天啊!那是什么外语? - Brice Coustillas
等一下,这是我说的吗?哈哈,我想我还记得当时我的意思,我知道它不够清晰,你还对我的回答感兴趣吗? - Chris Qiang
是的,我仍然对你的回答感兴趣。 - Brice Coustillas
嗨,Chris。你能解释一下我如何使用这种方法混淆我的代码吗?谢谢。 - user3931836

1

0
不,PHP 不能在没有客户端的情况下完成此操作。你可以使用一些 JavaScript 完成解码,但这并不友好且对于关闭 JavaScript 的用户来说很慢,同时也无法支持搜索引擎。

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