D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
opt
/
imunify360
/
venv
/
lib
/
python3.11
/
site-packages
/
im360
/
plugins
/
Filename :
php_immunity.py
back
Copy
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()