使用内联PHP混淆JavaScript?

3

我正在寻找一个JavaScript混淆器。虽然我已经找到了许多混淆器,但迄今为止没有一个能够处理(即忽略)内联php代码。以下是我所说的内联php代码示例:

var my_javascript_variable = <?php echo $my_php_variable; ?>;

这是否有可能进行混淆,如果可以,是否有相关工具可用?


您可以使用自己常用的任何工具压缩上述内容。您只需要运行它(我是指服务页面,运行PHP),并获取输出并进行压缩即可。您可以在受保护的页面上执行此操作,并将最小化的结果输出到可访问的页面。 - Peter Ajtai
将您的JavaScript的动态部分与静态部分分开,然后仅混淆和/或最小化静态部分,而不混淆动态部分,这个想法怎么样? - uthark
6个回答

2

我不知道有哪些混淆器能够做到这一点,但您可以简单地使您的JavaScript代码引用一个配置对象而不是PHP代码。然后,您可以混淆主要的JavaScript代码,例如:

// Config object with anything that has to be assigned through PHP
var Config = { 'foo': '<?php echo $foo?>'  }

// and some obfuscated code that uses the Config object
var _0x76dc=["\x66\x6F\x6F"];alert(Config[_0x76dc[0]]);

这是一个不错的建议。似乎也起作用了。这是目前为止最好的解决方案,所以我会采纳它! - Biggles
$foo变量仍然可见吗? - inside83

2
我建议不要一开始就混淆代码,而是使用YUI压缩器、JSMin或类似工具进行代码压缩,但这只是我的个人意见。

1
<点头> 对于安全而言,混淆并不起作用,尤其是在JS中。 压缩确实是有意义的。 - Pete

1

将内联的PHP和JavaScript运行到ob_start()中;
在<script>标签内部的JavaScript开头插入ob_start();

<?php ob_start();  ?>

您的内联php和javascript代码放在这里

在您想要结束内联php和javascript加密的位置插入ob_get_clean();

<?php $jsCode = ob_get_clean(); ?>

然后将$jsCode通过你的PHP混淆器类运行。
然而,我还没有找到一个好用的PHP JavaScript混淆器,它不能被http://deobfuscatejavascript.com/反混淆。

1
您能否提供一个完整的示例?此外,您推荐使用哪个 PHP 混淆器?谢谢。 - inside83

0

Google Closure 编译器可以做到这一点。它不会修改字符串。因此

var my_javascript_variable = "<?php echo $my_php_variable; ?>";

或者

var my_javascript_variable = Number("<?php echo $my_php_variable; ?>");

(对于整数)将起作用。

来源:https://stackoverflow.com/a/10455479/6702598


0

查看SD JavaScript Obfuscator。它专为处理独立的Javascript或嵌入在各种类似HTML语言(HTML,XML,ASP,PHP)中而设计。


0

你可以将PHP变量替换为其他内容,例如_thisismyphpdontmoveit,然后使用_thisismyphpdontmoveit混淆代码。混淆后,您可以按Ctrl + F搜索_thisismyphpdontmoveit并将其替换为您的PHP变量。 这是我用内联PHP混淆JavaScript的方法,我不知道它是否适用于您,但其中一些对我有效。


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