Запутывать JavaScript с помощью встроенного PHP?
Я ищу обфускатор JavaScript. Несмотря на то, что я нашел много обфускаторов, пока что никто не может обработать (т.е. игнорировать) встроенный php-код. Пример того, что я имею в виду под встроенным PHP-кодом:
var my_javascript_variable = <?php echo $my_php_variable; ?>;
Можно ли это скрыть, и если да, кто-нибудь знает о таком инструменте?
6 ответов
Не знаю ни одного обфускатора, способного сделать это, но вы можете просто сделать свой код 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]]);
Я бы на самом деле предложил не запутывать, а минимизировать (используя yui compressor / jsmin или подобное), но это только мое мнение
Запустите встроенный php и javascript в ob_start();
Вставить ob_start(); в начале вашего javascript внутри тега <script>
<?php ob_start(); ?>
Ваш встроенный php и javascript идут сюда
Вставьте ob_get_clean(); где вы хотите завершить шифрование вашего встроенного php и javascript
<?php $jsCode = ob_get_clean(); ?>
Затем запустите $jsCode через класс обфускатора php.
Однако мне еще предстоит найти хороший работающий обфускатор PHP javascript, который нельзя деобфусцировать через http://deobfuscatejavascript.com/
Проверьте SD JavaScript Обуфускатор. Он предназначен для работы с Javascript автономно или встроен в различные HTML-подобные языки (HTML, XML, ASP, PHP).
Компилятор Google Closure может сделать это. (Потому что) не будет касаться строк. Следовательно
var my_javascript_variable = "<?php echo $my_php_variable; ?>";
или же
var my_javascript_variable = Number("<?php echo $my_php_variable; ?>");
(для целых чисел) будет работать.
Вы можете заменить свою переменную PHP чем-то другим, например _thisismyphpdontmoveit, а затем обфускировать код с помощью _thisismyphpdontmoveit после обфускации, вы можете нажать ctrl+F для поиска _thisismyphpdontmoveit и заменить их своей переменной PHP. Это мой способ обфускации JavaScript с помощью встроенного PHP. Я не знаю, сработает ли он для вас, но некоторые из них работают для меня.