Николай Савин

Николай Савин

С нами с 01 января 1970; Место в рейтинге пользователей: #2
10 января 2025, 10:35
0
Шифрование исходного кода PHP может быть полезно для защиты интеллектуальной собственности или предотвращения несанкционированного доступа к коду. Однако стоит учитывать, что полная защита исходного кода невозможна, так как PHP выполняется на стороне сервера, и расшифрованный код должен быть доступен для интерпретатора. Тем не менее, вот несколько способов, которые могут помочь затруднить чтение исходного кода:

1. Использование инструментов для обфускации кода

Обфускация — это процесс преобразования исходного кода в трудночитаемую форму, сохраняя его функциональность. Существуют инструменты, которые могут обфусцировать PHP-код:

PHP Obfuscator: Инструменты вроде PHP Obfuscator или ionCube PHP Obfuscator могут преобразовать код в нечитаемый вид.
YAK Pro: Бесплатный инструмент для обфускации PHP-кода.

Пример использования:
php yakpro-po.php your_script.php -o obfuscated_script.php
2. Шифрование с помощью ionCube или Zend Guard
Эти коммерческие инструменты позволяют зашифровать PHP-код и запускать его с помощью специального расширения на сервере.
  • ionCube: Шифрует код и требует установки ionCube Loader на сервере.
  • Zend Guard: Аналогично ionCube, шифрует код и требует Zend Optimizer.
Пример использования ionCube:

ioncube_encoder your_script.php -o encrypted_script.php
3. Использование base64_encode и eval
Этот метод не является надежным, но может затруднить чтение кода. Код кодируется в base64, а затем декодируется и выполняется с помощью eval.
Пример:

<?php
$code = '<?php echo "Hello, World!"; ?>';
$encoded = base64_encode($code);
eval(base64_decode($encoded));
?>
4. Самописное шифрование

Вы можете написать собственный алгоритм шифрования и расшифровки кода. Однако это требует глубоких знаний в криптографии и может быть ненадежным.
Пример:

<?php
function encrypt($code, $key) {
    return openssl_encrypt($code, 'AES-128-CBC', $key);
}

function decrypt($encrypted, $key) {
    return openssl_decrypt($encrypted, 'AES-128-CBC', $key);
}

$code = '<?php echo "Hello, World!"; ?>';
$key = 'your_secret_key';
$encrypted = encrypt($code, $key);
eval(decrypt($encrypted, $key));
?>
5. Использование PHP-расширений

Вы можете написать собственное PHP-расширение на C, которое будет содержать зашифрованный код. Это требует навыков программирования на C и работы с PHP API.

Важные замечания:

  • Производительность: Шифрование и расшифровка кода могут замедлить выполнение скрипта.
  • Безопасность: Ни один метод не обеспечивает 100% защиту. Злоумышленник с достаточными знаниями и временем может декомпилировать или расшифровать код.
  • Лицензирование: Убедитесь, что использование инструментов шифрования соответствует лицензионным соглашениям
Выбор метода зависит от ваших требований к безопасности, бюджета и уровня сложности, который вы готовы принять.
09 января 2025, 17:21
+1
Вот так привязать к шаблонам.

$templates = array(1, 2); 
if(in_array($modx->controller->resource->get('template'), $templates)) {
	$modx->regClientStartupHTMLBlock('<script>Ext.onReady(function() {
if(MODx.loadRTE) MODx.loadRTE("modx-resource-introtext");
});</script>');
};
Вот так выводить для указанных шаблонов, и плюс отдельно для указанных ID.

$templates = array(1, 2); 
$ids = [112, 113];
if(

in_array($modx->controller->resource->get('template'), $templates) 
||  in_array($modx->controller->resource->get('id'), $ids) 
) {
	$modx->regClientStartupHTMLBlock('<script>Ext.onReady(function() {
if(MODx.loadRTE) MODx.loadRTE("modx-resource-introtext");
});</script>');
};
09 января 2025, 12:14
0
У работы нет стоимости, она у есть у исполнителя.
Соответственно зависит от того, кто будет делать.
Ну, а дальше уже нюансы. Что за файл, откуда он берется. Готовый он или нужно генерировать. Куда, когда отсылать, при каких условиях и т.п.
08 января 2025, 21:57
0
Да это возможно, но придется писать свой плагин скорее всего. В MODX и minishop2 из коробки такого нет
05 января 2025, 16:38
0
В нашем случае рейтинг — это же признак квалификации, узнаваемости, признания профессиональных заслуг.
Как то странно донатами влиять на свою узнаваемость или признание.
03 января 2025, 18:04
+3
Судя по комментариям — возникло небольшое недопонимание.
В недрах проекта есть сложная формула, согласно которой рейтинг складывается из различных параметров.
А именно
За публикацию — начисляется от 0 до 20 баллов в, зависимости от раздела.
За комментарии — начисляются 0 баллов, но зато добавляются баллы за лайки комментарию.
Также учитываются лайки к постам, добавление постов в избранное и т.п.

В общем сложная, многоуровневая формула, которую сделал еще Василий. Она остается неизменной.

Я же лишь реализовал коэффициент активности. Программа высчитывает рейтинг пользователя по формуле Василия, а с сегодняшнего дня помножается на коэф. активности.

Пользователь был активен в последний месяц — его рейтинг равен тому что дала формула рейтинга.
Пользователь пропал и не писал ничего более полугода — его рейтинг помножается на 0.5 (делится пополам). Но стоит ему зайти и написать пост — как его рейтинг сразу восстановится.

В итоге из рейтинга отсеиваются люди, давно потерявшие MODX из виду, а вперед вырываются те, кто регулярно пишет посты и комментарии.
19 декабря 2024, 15:42
+1
Касательно MiniShop3 — изменения в классах и таблицах товаров не планируются. Так что тут уже стабильно все.
14 декабря 2024, 11:28
+1
Спасибо за теплые слова Антон.
Документацию пока не начинал делать. Надо бы…
Умные люди советую отдельный проект под документацию и демку поднимать, так как материала много. Мнения разделяются.
Насчет локализации. Ну тут принципы MODX сохранены. В ближайшее время создам каталоги всех языков и далее можно будет помочь с переводами.
09 декабря 2024, 21:27
+2
Спустя два года — сделано
03 декабря 2024, 19:09
0
Расскажи ка мне друг мой, как ты при помощи события отменишь добавление в корзину или отправку заказа?
А как, при подписке на одно событие — ты прервешь выполнение других, если первое событие сигнализирует о прерывании действия. И еще пожалуйста дай знать, как работать в событиях с асинхронными запросами.

Я и сам думал обойдусь событиями. Но основательно взявшись за работу, понял что они нефига не справляются.
29 ноября 2024, 11:58
+2
Вы не думали сделать его платным
Почти наверняка будет платная Энтерпрайз версия в дополнение к базовой бесплатной.
29 ноября 2024, 11:56
0
что именно на вас держится MODx
Спасибо за теплые слова. Он держится на вас на всех скорее, кто поддерживает финансово. Ибо без этого не было бы мотивации совсем.
28 ноября 2024, 19:27
+1
Присоединяйся. Лексиконы тебя заждались
28 ноября 2024, 13:34
0
Это разные программы, с разным принципом работы. Переезд вряд ли возможен.
28 ноября 2024, 09:58
+1
Передал российским товарищам. Спасибо за инфу. поправим
25 ноября 2024, 19:10
0
но их делать месяц два на каждый
Это ж есть все в PrimeVue. Нужно только адаптировать и написать коннекторы к PHP
12 ноября 2024, 19:52
0
С ним славу богу все хорошо. Он пошел дальше по карьерной лестнице, оставил MODX позади и сейчас заглядывает к нам только поздороваться.
15 октября 2024, 20:11
0
Здравствуйте. Что такое CSM? Впервые вижу.
У вас серверная ошибка. Причина ее возникновения обязательно записана в журнал ошибок хостинга (или сервера). Нужно смотреть там, а не в журнале ошибок MODX.

Посмотрите также, какие плагины у вас есть, какие из них назначены на событие OnDocFormSave. Скорее всего дело в одном из них. Можно поотключать по очереди, с очисткой кеша.
15 октября 2024, 13:11
0
Ни стыда, ни совести, ни тикета