├── .coveragerc ├── .flake8 ├── .git-blame-ignore-revs ├── .github └── workflows │ └── test.yml ├── .gitignore ├── .pre-commit-config.yaml ├── CODE_OF_CONDUCT.md ├── Dockerfile ├── LICENSE ├── README.md ├── docker-compose.yml ├── httpobs ├── __init__.py ├── conf │ ├── __init__.py │ ├── amazon-rds.pem │ ├── hsts-preload.json │ └── httpobs.conf ├── database │ ├── .dockerignore │ ├── .gitignore │ ├── Dockerfile │ ├── __init__.py │ ├── database.py │ ├── schema.sql │ └── schema.sql.docker.sql ├── docs │ ├── api.md │ ├── contribute.json │ └── scoring.md ├── scanner │ ├── __init__.py │ ├── analyzer │ │ ├── __init__.py │ │ ├── content.py │ │ ├── decorators.py │ │ ├── headers.py │ │ ├── misc.py │ │ └── utils.py │ ├── grader │ │ ├── __init__.py │ │ └── grade.py │ ├── local.py │ ├── retriever │ │ ├── __init__.py │ │ ├── retriever.py │ │ └── utils.py │ ├── scanner.py │ └── utils.py ├── scripts │ ├── httpobs-regen-hsts-preload │ └── scan.py ├── tests │ ├── __init__.py │ ├── unittests │ │ ├── __init__.py │ │ ├── files │ │ │ ├── test_content_sri_impl_external_http.html │ │ │ ├── test_content_sri_impl_external_https1.html │ │ │ ├── test_content_sri_impl_external_https2.html │ │ │ ├── test_content_sri_impl_external_noproto.html │ │ │ ├── test_content_sri_impl_sameorigin.html │ │ │ ├── test_content_sri_no_scripts.html │ │ │ ├── test_content_sri_notimpl_external_http.html │ │ │ ├── test_content_sri_notimpl_external_https.html │ │ │ ├── test_content_sri_notimpl_external_noproto.html │ │ │ ├── test_content_sri_sameorigin1.html │ │ │ ├── test_content_sri_sameorigin2.html │ │ │ ├── test_content_sri_sameorigin3.html │ │ │ ├── test_parse_http_equiv_headers_case_insensitivity.html │ │ │ ├── test_parse_http_equiv_headers_csp1.html │ │ │ ├── test_parse_http_equiv_headers_csp2.html │ │ │ ├── test_parse_http_equiv_headers_csp_multiple_http_equiv1.html │ │ │ └── test_parse_http_equiv_headers_referrer1.html │ │ ├── test_content.py │ │ ├── test_csp_parser.py │ │ ├── test_grades.py │ │ ├── test_headers.py │ │ ├── test_misc.py │ │ ├── test_parse_http_equiv_headers.py │ │ ├── test_preload.py │ │ ├── test_retriever.py │ │ ├── test_sanitize_headers.py │ │ └── test_valid_hostname.py │ └── utils.py └── website │ ├── __init__.py │ ├── api.py │ ├── decorators.py │ ├── main.py │ ├── monitoring.py │ └── utils.py ├── poetry.lock └── pyproject.toml /.coveragerc: -------------------------------------------------------------------------------- 1 | [report] 2 | show_missing = True 3 | -------------------------------------------------------------------------------- /.flake8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/.flake8 -------------------------------------------------------------------------------- /.git-blame-ignore-revs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/.git-blame-ignore-revs -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/.github/workflows/test.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/.gitignore -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/.pre-commit-config.yaml -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/CODE_OF_CONDUCT.md -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/Dockerfile -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/README.md -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/docker-compose.yml -------------------------------------------------------------------------------- /httpobs/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/__init__.py -------------------------------------------------------------------------------- /httpobs/conf/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/conf/__init__.py -------------------------------------------------------------------------------- /httpobs/conf/amazon-rds.pem: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/conf/amazon-rds.pem -------------------------------------------------------------------------------- /httpobs/conf/hsts-preload.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/conf/hsts-preload.json -------------------------------------------------------------------------------- /httpobs/conf/httpobs.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/conf/httpobs.conf -------------------------------------------------------------------------------- /httpobs/database/.dockerignore: -------------------------------------------------------------------------------- 1 | __pycache__ 2 | data 3 | .DS_Store 4 | -------------------------------------------------------------------------------- /httpobs/database/.gitignore: -------------------------------------------------------------------------------- 1 | data 2 | -------------------------------------------------------------------------------- /httpobs/database/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/database/Dockerfile -------------------------------------------------------------------------------- /httpobs/database/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/database/__init__.py -------------------------------------------------------------------------------- /httpobs/database/database.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/database/database.py -------------------------------------------------------------------------------- /httpobs/database/schema.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/database/schema.sql -------------------------------------------------------------------------------- /httpobs/database/schema.sql.docker.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/database/schema.sql.docker.sql -------------------------------------------------------------------------------- /httpobs/docs/api.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/docs/api.md -------------------------------------------------------------------------------- /httpobs/docs/contribute.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/docs/contribute.json -------------------------------------------------------------------------------- /httpobs/docs/scoring.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/docs/scoring.md -------------------------------------------------------------------------------- /httpobs/scanner/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/scanner/__init__.py -------------------------------------------------------------------------------- /httpobs/scanner/analyzer/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/scanner/analyzer/__init__.py -------------------------------------------------------------------------------- /httpobs/scanner/analyzer/content.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/scanner/analyzer/content.py -------------------------------------------------------------------------------- /httpobs/scanner/analyzer/decorators.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/scanner/analyzer/decorators.py -------------------------------------------------------------------------------- /httpobs/scanner/analyzer/headers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/scanner/analyzer/headers.py -------------------------------------------------------------------------------- /httpobs/scanner/analyzer/misc.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/scanner/analyzer/misc.py -------------------------------------------------------------------------------- /httpobs/scanner/analyzer/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/scanner/analyzer/utils.py -------------------------------------------------------------------------------- /httpobs/scanner/grader/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/scanner/grader/__init__.py -------------------------------------------------------------------------------- /httpobs/scanner/grader/grade.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/scanner/grader/grade.py -------------------------------------------------------------------------------- /httpobs/scanner/local.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/scanner/local.py -------------------------------------------------------------------------------- /httpobs/scanner/retriever/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/scanner/retriever/__init__.py -------------------------------------------------------------------------------- /httpobs/scanner/retriever/retriever.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/scanner/retriever/retriever.py -------------------------------------------------------------------------------- /httpobs/scanner/retriever/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/scanner/retriever/utils.py -------------------------------------------------------------------------------- /httpobs/scanner/scanner.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/scanner/scanner.py -------------------------------------------------------------------------------- /httpobs/scanner/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/scanner/utils.py -------------------------------------------------------------------------------- /httpobs/scripts/httpobs-regen-hsts-preload: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/scripts/httpobs-regen-hsts-preload -------------------------------------------------------------------------------- /httpobs/scripts/scan.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/scripts/scan.py -------------------------------------------------------------------------------- /httpobs/tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /httpobs/tests/unittests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /httpobs/tests/unittests/files/test_content_sri_impl_external_http.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/tests/unittests/files/test_content_sri_impl_external_http.html -------------------------------------------------------------------------------- /httpobs/tests/unittests/files/test_content_sri_impl_external_https1.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/tests/unittests/files/test_content_sri_impl_external_https1.html -------------------------------------------------------------------------------- /httpobs/tests/unittests/files/test_content_sri_impl_external_https2.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/tests/unittests/files/test_content_sri_impl_external_https2.html -------------------------------------------------------------------------------- /httpobs/tests/unittests/files/test_content_sri_impl_external_noproto.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/tests/unittests/files/test_content_sri_impl_external_noproto.html -------------------------------------------------------------------------------- /httpobs/tests/unittests/files/test_content_sri_impl_sameorigin.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/tests/unittests/files/test_content_sri_impl_sameorigin.html -------------------------------------------------------------------------------- /httpobs/tests/unittests/files/test_content_sri_no_scripts.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/tests/unittests/files/test_content_sri_no_scripts.html -------------------------------------------------------------------------------- /httpobs/tests/unittests/files/test_content_sri_notimpl_external_http.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/tests/unittests/files/test_content_sri_notimpl_external_http.html -------------------------------------------------------------------------------- /httpobs/tests/unittests/files/test_content_sri_notimpl_external_https.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/tests/unittests/files/test_content_sri_notimpl_external_https.html -------------------------------------------------------------------------------- /httpobs/tests/unittests/files/test_content_sri_notimpl_external_noproto.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/tests/unittests/files/test_content_sri_notimpl_external_noproto.html -------------------------------------------------------------------------------- /httpobs/tests/unittests/files/test_content_sri_sameorigin1.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/tests/unittests/files/test_content_sri_sameorigin1.html -------------------------------------------------------------------------------- /httpobs/tests/unittests/files/test_content_sri_sameorigin2.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/tests/unittests/files/test_content_sri_sameorigin2.html -------------------------------------------------------------------------------- /httpobs/tests/unittests/files/test_content_sri_sameorigin3.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/tests/unittests/files/test_content_sri_sameorigin3.html -------------------------------------------------------------------------------- /httpobs/tests/unittests/files/test_parse_http_equiv_headers_case_insensitivity.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/tests/unittests/files/test_parse_http_equiv_headers_case_insensitivity.html -------------------------------------------------------------------------------- /httpobs/tests/unittests/files/test_parse_http_equiv_headers_csp1.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/tests/unittests/files/test_parse_http_equiv_headers_csp1.html -------------------------------------------------------------------------------- /httpobs/tests/unittests/files/test_parse_http_equiv_headers_csp2.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/tests/unittests/files/test_parse_http_equiv_headers_csp2.html -------------------------------------------------------------------------------- /httpobs/tests/unittests/files/test_parse_http_equiv_headers_csp_multiple_http_equiv1.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/tests/unittests/files/test_parse_http_equiv_headers_csp_multiple_http_equiv1.html -------------------------------------------------------------------------------- /httpobs/tests/unittests/files/test_parse_http_equiv_headers_referrer1.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/tests/unittests/files/test_parse_http_equiv_headers_referrer1.html -------------------------------------------------------------------------------- /httpobs/tests/unittests/test_content.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/tests/unittests/test_content.py -------------------------------------------------------------------------------- /httpobs/tests/unittests/test_csp_parser.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/tests/unittests/test_csp_parser.py -------------------------------------------------------------------------------- /httpobs/tests/unittests/test_grades.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/tests/unittests/test_grades.py -------------------------------------------------------------------------------- /httpobs/tests/unittests/test_headers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/tests/unittests/test_headers.py -------------------------------------------------------------------------------- /httpobs/tests/unittests/test_misc.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/tests/unittests/test_misc.py -------------------------------------------------------------------------------- /httpobs/tests/unittests/test_parse_http_equiv_headers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/tests/unittests/test_parse_http_equiv_headers.py -------------------------------------------------------------------------------- /httpobs/tests/unittests/test_preload.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/tests/unittests/test_preload.py -------------------------------------------------------------------------------- /httpobs/tests/unittests/test_retriever.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/tests/unittests/test_retriever.py -------------------------------------------------------------------------------- /httpobs/tests/unittests/test_sanitize_headers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/tests/unittests/test_sanitize_headers.py -------------------------------------------------------------------------------- /httpobs/tests/unittests/test_valid_hostname.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/tests/unittests/test_valid_hostname.py -------------------------------------------------------------------------------- /httpobs/tests/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/tests/utils.py -------------------------------------------------------------------------------- /httpobs/website/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/website/__init__.py -------------------------------------------------------------------------------- /httpobs/website/api.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/website/api.py -------------------------------------------------------------------------------- /httpobs/website/decorators.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/website/decorators.py -------------------------------------------------------------------------------- /httpobs/website/main.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/website/main.py -------------------------------------------------------------------------------- /httpobs/website/monitoring.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/website/monitoring.py -------------------------------------------------------------------------------- /httpobs/website/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/httpobs/website/utils.py -------------------------------------------------------------------------------- /poetry.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/poetry.lock -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozilla/http-observatory/HEAD/pyproject.toml --------------------------------------------------------------------------------