| Server IP : 216.106.184.20 / Your IP : 216.73.216.234 Web Server : LiteSpeed System : Linux asmodeus.in-hell.com 5.14.0-570.58.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Oct 29 06:24:11 EDT 2025 x86_64 User : sekoaid1 ( 1891) PHP Version : 7.3.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /opt/imunify360/venv/lib/python3.11/site-packages/im360/plugins/ |
Upload File : |
import logging
import os
import shutil
from defence360agent.contracts.config import SystemConfig
from defence360agent.contracts.messages import MessageType
from defence360agent.contracts.plugins import MessageSink, expect
from im360.contracts.config import ProactiveDefence
from im360.subsys import proactive
logger = logging.getLogger(__name__)
class PhpImmunityPlugin(MessageSink):
def __init__(self):
self._loop = None
self.config_php_immunity = ProactiveDefence.PHP_IMMUNITY
async def create_sink(self, loop) -> None:
self._loop = loop
@expect(MessageType.ConfigUpdate)
async def on_config_update(self, message: MessageType.ConfigUpdate):
if (
isinstance(message["conf"], SystemConfig)
and self.config_php_immunity != ProactiveDefence.PHP_IMMUNITY
):
self.config_php_immunity = ProactiveDefence.PHP_IMMUNITY
if not ProactiveDefence.PHP_IMMUNITY:
if os.path.isfile(proactive.PHP_IMMUNITY_COMPILED_RULES):
os.unlink(proactive.PHP_IMMUNITY_COMPILED_RULES)
else:
shutil.rmtree(
proactive.PHP_IMMUNITY_COMPILED_RULES,
ignore_errors=True,
)
else:
if os.path.exists(proactive.PHP_IMMUNITY_FILENAME):
await proactive.apply_php_immunity_rules()