├── .gitignore ├── README.md ├── app.py ├── blockers ├── __init__.py ├── base.py ├── ipset.py ├── nft.py ├── tfh.py └── tft.py ├── cli.py ├── config.py ├── core ├── __init__.py ├── context.py ├── executor.py └── lifespan.py ├── detectors ├── __init__.py ├── base.py ├── geoip.py ├── ip.py ├── tfh.py └── tft.py ├── example.env ├── pytest.ini ├── requirements.txt ├── tests ├── __init__.py ├── base.py ├── conftest.py ├── test_access_log.py ├── test_app.py ├── test_blocker_ipset_and_nft.py ├── test_blocker_tfh.py ├── test_blocker_tft.py ├── test_detector_base.py ├── test_detector_geoip.py ├── test_detector_ip_based.py ├── test_detector_tfh_based.py ├── test_detector_tft_based.py ├── test_executors.py ├── test_lifespan_background_monitor_release_users.py ├── test_lifespan_background_monitor_risky_users.py ├── test_lifespan_initialization.py ├── test_lifespan_load_persistent.py ├── test_lifespan_training_historical_mode.py ├── test_lifespan_training_real_mode.py ├── test_tf_config.py └── test_user_agents.py └── utils ├── __init__.py ├── access_log.py ├── datatypes.py ├── logger.py ├── shell.py ├── tf_config.py └── user_agents.py /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | *.pyc 3 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/README.md -------------------------------------------------------------------------------- /app.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/app.py -------------------------------------------------------------------------------- /blockers/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/blockers/__init__.py -------------------------------------------------------------------------------- /blockers/base.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/blockers/base.py -------------------------------------------------------------------------------- /blockers/ipset.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/blockers/ipset.py -------------------------------------------------------------------------------- /blockers/nft.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/blockers/nft.py -------------------------------------------------------------------------------- /blockers/tfh.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/blockers/tfh.py -------------------------------------------------------------------------------- /blockers/tft.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/blockers/tft.py -------------------------------------------------------------------------------- /cli.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/cli.py -------------------------------------------------------------------------------- /config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/config.py -------------------------------------------------------------------------------- /core/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /core/context.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/core/context.py -------------------------------------------------------------------------------- /core/executor.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/core/executor.py -------------------------------------------------------------------------------- /core/lifespan.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/core/lifespan.py -------------------------------------------------------------------------------- /detectors/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /detectors/base.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/detectors/base.py -------------------------------------------------------------------------------- /detectors/geoip.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/detectors/geoip.py -------------------------------------------------------------------------------- /detectors/ip.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/detectors/ip.py -------------------------------------------------------------------------------- /detectors/tfh.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/detectors/tfh.py -------------------------------------------------------------------------------- /detectors/tft.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/detectors/tft.py -------------------------------------------------------------------------------- /example.env: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/example.env -------------------------------------------------------------------------------- /pytest.ini: -------------------------------------------------------------------------------- 1 | [pytest] 2 | asyncio_mode = auto 3 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/requirements.txt -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/base.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/tests/base.py -------------------------------------------------------------------------------- /tests/conftest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/tests/conftest.py -------------------------------------------------------------------------------- /tests/test_access_log.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/tests/test_access_log.py -------------------------------------------------------------------------------- /tests/test_app.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/tests/test_app.py -------------------------------------------------------------------------------- /tests/test_blocker_ipset_and_nft.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/tests/test_blocker_ipset_and_nft.py -------------------------------------------------------------------------------- /tests/test_blocker_tfh.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/tests/test_blocker_tfh.py -------------------------------------------------------------------------------- /tests/test_blocker_tft.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/tests/test_blocker_tft.py -------------------------------------------------------------------------------- /tests/test_detector_base.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/tests/test_detector_base.py -------------------------------------------------------------------------------- /tests/test_detector_geoip.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/tests/test_detector_geoip.py -------------------------------------------------------------------------------- /tests/test_detector_ip_based.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/tests/test_detector_ip_based.py -------------------------------------------------------------------------------- /tests/test_detector_tfh_based.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/tests/test_detector_tfh_based.py -------------------------------------------------------------------------------- /tests/test_detector_tft_based.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/tests/test_detector_tft_based.py -------------------------------------------------------------------------------- /tests/test_executors.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/tests/test_executors.py -------------------------------------------------------------------------------- /tests/test_lifespan_background_monitor_release_users.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/tests/test_lifespan_background_monitor_release_users.py -------------------------------------------------------------------------------- /tests/test_lifespan_background_monitor_risky_users.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/tests/test_lifespan_background_monitor_risky_users.py -------------------------------------------------------------------------------- /tests/test_lifespan_initialization.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/tests/test_lifespan_initialization.py -------------------------------------------------------------------------------- /tests/test_lifespan_load_persistent.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/tests/test_lifespan_load_persistent.py -------------------------------------------------------------------------------- /tests/test_lifespan_training_historical_mode.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/tests/test_lifespan_training_historical_mode.py -------------------------------------------------------------------------------- /tests/test_lifespan_training_real_mode.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/tests/test_lifespan_training_real_mode.py -------------------------------------------------------------------------------- /tests/test_tf_config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/tests/test_tf_config.py -------------------------------------------------------------------------------- /tests/test_user_agents.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/tests/test_user_agents.py -------------------------------------------------------------------------------- /utils/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /utils/access_log.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/utils/access_log.py -------------------------------------------------------------------------------- /utils/datatypes.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/utils/datatypes.py -------------------------------------------------------------------------------- /utils/logger.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/utils/logger.py -------------------------------------------------------------------------------- /utils/shell.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/utils/shell.py -------------------------------------------------------------------------------- /utils/tf_config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/utils/tf_config.py -------------------------------------------------------------------------------- /utils/user_agents.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tempesta-tech/webshield/HEAD/utils/user_agents.py --------------------------------------------------------------------------------