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

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

С нами с 01 января 1970; Место в рейтинге пользователей: #2
09 мая 2025, 20:00
+1
Перенес в готовые решения
19 марта 2025, 18:43
+2
Hello @Henk Everts
Nice to meet you. Thanks for the translate. It is awesome.
19 марта 2025, 17:13
+1
Здравствуйте. Готового решения конечно же нет в рамках MODX. Но они есть в мире PHP.

Для регулирования частоты запросов к API в PHP можно использовать библиотеку php-ratelimiter или symfony/rate-limiter. Оба инструмента предоставляют удобные способы контроля и ограничения количества запросов за определённый промежуток времени.

К примеру вот так используется php-ratelimiter
use RateLimiter\RateLimiter;
use RateLimiter\Storage\FileStorage;

$storage = new FileStorage('/path/to/storage');
$limiter = new RateLimiter($storage, 100, 3600); // 100 запросов в час

$key = 'user_ip_or_api_key'; // Уникальный идентификатор (например, IP или API-ключ)
if ($limiter->check($key)) {
    // Запрос разрешён
    $limiter->increment($key);
} else {
    // Лимит исчерпан
    http_response_code(429);
    echo 'Too Many Requests';
    exit;
}
16 марта 2025, 09:25
+2
Карма @Денис Усманов увеличена до бесконечности, за такое полезное дело!
27 февраля 2025, 10:33
0
Открываешь консоль браузера и смотришь ошибки. Если нет соединения с коннекторами, Там будет написано об этом
26 февраля 2025, 22:22
0
Встречал такое в случае, когда сайт работает по незащищенному http протоколу, помогало настроить редирект или хотя б руками https написать
14 февраля 2025, 15:45
0
Саш, а откуда карточки то? Есть реальный сайт?
12 февраля 2025, 15:52
+3
О, технологии из взрослой песочницы подъехали. Уважаю
02 февраля 2025, 13:37
0
Очень хороший комплексный материал. Низкий поклон. Давненько такого не было.
27 января 2025, 11:11
+4
Это безумно круто. Я в восторге
24 января 2025, 19:16
0
Ну мёд просто
17 января 2025, 21:18
0
Формула берет просто текущий год и год перед ним. Только числа года.
17 января 2025, 17:14
0
Так откуда бы им взяться. Молодой крови особо не видно в наших краях.
13 января 2025, 14:28
+1
Рейтинг поста можно только в течение определенного времени менять. Не помню уже сколько дается. Эта заметка -уже старая.

На MODX 3 + Minishop 3 есть ли какая-то дорожная карта развития и какие инструменты и возможности в нем будут реализованы?
Я честно говоря склоняюсь к разработке Enterprice версии (платной). И в ней встраивать уже поиск и фильтры, работу с изображениями, с контентом, бонусы, модификации, промо-коды и т.п.
Короче чтобы скачал и сразу все было под ключ, вплоть до готовых тем
13 января 2025, 14:26
+1
Ну вот. Только его подвинули, а он опять вверх ))
Насчет возраста заметки — это кстати отличная идея. Я не подумал. Наверное ради интереса попробую сделать концепт расчета.
11 января 2025, 11:35
0
Да. Но это грамотный ответ мнение, с которым я согласен
10 января 2025, 18:57
0
Вопрос о шифровании компонентов для MODX и модифицированных версий MODX связан с интерпретацией лицензий GNU, в частности GNU GPL (General Public License), под которой распространяется MODX.

1. Модифицированная версия MODX
Если вы модифицируете исходный код MODX и распространяете (или продаете) эту модифицированную версию, то лицензия GNU GPL требует, чтобы вы предоставили исходный код модифицированной версии. Шифрование модифицированной версии MODX явно нарушает это требование, так как лицензия GPL требует, чтобы исходный код был доступен для всех, кто получил модифицированную версию.

2. Шифрование компонентов для MODX
Компоненты для MODX (например, плагины, сниппеты, модули) могут рассматриваться как производные работы, если они напрямую используют или модифицируют код MODX. В этом случае они также подпадают под действие лицензии GPL, и их исходный код должен быть предоставлен.

Однако, если компонент является самостоятельным программным обеспечением, которое лишь взаимодействует с MODX через API или другие интерфейсы, не включая и не модифицируя исходный код MODX, то он может не подпадать под требования GPL. В этом случае шифрование такого компонента может быть допустимым, но это зависит от конкретных обстоятельств и интерпретации лицензии.

3. Код, включающий код MODX
Если ваш код включает или модифицирует исходный код MODX, то он считается производной работой и должен распространяться под той же лицензией GPL с предоставлением исходного кода.

4. Код, использующий инструменты MODX
Если ваш код лишь использует API или другие инструменты MODX, не включая и не модифицируя его исходный код, то он может не подпадать под требования GPL. В этом случае шифрование такого кода может быть допустимым.

5. Интерпретация для фреймворков
Для фреймворков, распространяемых под лицензией GPL, обычно применяются те же принципы. Если ваш код является производной работой (включает или модифицирует код фреймворка), то он должен распространяться под GPL с предоставлением исходного кода. Если же ваш код лишь использует API или интерфейсы фреймворка, не включая его код, то он может не подпадать под требования GPL.
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% защиту. Злоумышленник с достаточными знаниями и временем может декомпилировать или расшифровать код.
  • Лицензирование: Убедитесь, что использование инструментов шифрования соответствует лицензионным соглашениям
Выбор метода зависит от ваших требований к безопасности, бюджета и уровня сложности, который вы готовы принять.