$72 GRAYBYTE WORDPRESS FILE MANAGER $65

SERVER : vnpttt-amd7f72-h1.vietnix.vn #1 SMP Fri May 24 12:42:50 UTC 2024
SERVER IP : 103.200.23.149 | ADMIN IP 216.73.216.22
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : NONE

/opt/imunify360/venv/lib/python3.11/site-packages/im360/subsys/

HOME
Current File : /opt/imunify360/venv/lib/python3.11/site-packages/im360/subsys//modsec_cache_dir.py
"""
https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual-(v2.x)#SecDataDir
"""
import asyncio
import os
import logging

from defence360agent.subsys.panels import hosting_panel
from defence360agent.utils import retry_on
from defence360agent.subsys import web_server

logger = logging.getLogger(__name__)


def get_sec_data_dir(modsec_config_path):
    try:
        with open(modsec_config_path) as f:
            data = f.read()
        start = "<IfModule security2_module>"
        end = "</IfModule>"
        param_name = "SecDataDir"
        data_between = data.split(start)[1].split(end)[0]
        param = next(
            iter(
                [
                    line
                    for line in data_between.splitlines()
                    if param_name in line
                ]
            ),
            None,
        )
        return param.split(param_name)[1].strip()
    except (IndexError, AttributeError, OSError) as e:
        logger.error("Incorrect modsec config %s", e)


async def create_modsec_cache_directory():
    """
    Create modsec cache directory because sometimes a directory may not exist
    :return:
    """
    try:
        modsec_config_path = (
            hosting_panel.HostingPanel().get_modsec_config_path()
        )
    except NotImplementedError as e:
        logger.debug(
            "get_modsec_config_path is not implemented for current "
            "hosting_panel %s",
            e,
        )
        return
    if not modsec_config_path or not os.path.exists(modsec_config_path):
        return

    sec_data_dir = get_sec_data_dir(modsec_config_path)
    if sec_data_dir and not os.path.exists(sec_data_dir):
        try:
            os.makedirs(sec_data_dir)

            # The directory to which the directive points must be
            # writable by the web server user.

            async def pause(*_):
                await asyncio.sleep(60)  # wait a minute between attempts

            @retry_on(web_server.NotRunningError, on_error=pause, max_tries=5)
            async def coro():
                web_server.chown(sec_data_dir)

            await coro()

            logger.info("Successfully created sec_data_dir %s", sec_data_dir)
            await web_server.graceful_restart()
        except OSError as e:
            logger.error("Error when creating sec_data_dir %s", e)

Current_dir [ NOT WRITEABLE ] Document_root [ WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
16 Dec 2025 10.11 AM
root / root
0755
__pycache__
--
16 Dec 2025 10.11 AM
root / root
0755
features
--
16 Dec 2025 10.11 AM
root / root
0755
panels
--
16 Dec 2025 10.11 AM
root / root
0755
__init__.py
0 KB
14 Nov 2025 6.19 PM
root / root
0644
csf.py
10.848 KB
14 Nov 2025 6.19 PM
root / root
0644
fail2ban.py
0.222 KB
14 Nov 2025 6.19 PM
root / root
0644
int_config.py
0.704 KB
14 Nov 2025 6.19 PM
root / root
0644
modsec_app_version_detector.py
2.634 KB
14 Nov 2025 6.19 PM
root / root
0644
modsec_audit_log.py
50.451 KB
14 Nov 2025 6.19 PM
root / root
0644
modsec_cache_dir.py
2.303 KB
14 Nov 2025 6.19 PM
root / root
0644
ossec.py
7.783 KB
14 Nov 2025 6.19 PM
root / root
0644
pam.py
4.903 KB
14 Nov 2025 6.19 PM
root / root
0644
proactive.py
3.444 KB
14 Nov 2025 6.19 PM
root / root
0644
remoteip.py
3.228 KB
14 Nov 2025 6.19 PM
root / root
0644
running_ids.py
1.77 KB
14 Nov 2025 6.19 PM
root / root
0644
shared_disabled_rules.py
4.72 KB
14 Nov 2025 6.19 PM
root / root
0644
smtp_blocking.py
16.539 KB
14 Nov 2025 6.19 PM
root / root
0644
waf_rules_configurator.py
4.563 KB
14 Nov 2025 6.19 PM
root / root
0644
webshield.py
5.881 KB
14 Nov 2025 6.19 PM
root / root
0644
webshield_mode.py
0.993 KB
14 Nov 2025 6.19 PM
root / root
0644
whitelist_rbl.py
4.731 KB
14 Nov 2025 6.19 PM
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME
Static GIF