{"id":37441319,"url":"https://github.com/ncsa/http-logger","last_synced_at":"2026-01-16T06:45:04.100Z","repository":{"id":57644107,"uuid":"94142285","full_name":"ncsa/http-logger","owner":"ncsa","description":"http request logger for sinkhole purposes","archived":false,"fork":false,"pushed_at":"2021-06-23T23:56:59.000Z","size":12,"stargazers_count":9,"open_issues_count":0,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-10-02T01:57:06.666Z","etag":null,"topics":["http","log","rpz","sinkhole"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ncsa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-06-12T21:30:57.000Z","updated_at":"2022-08-04T04:18:06.000Z","dependencies_parsed_at":"2022-08-30T08:01:41.590Z","dependency_job_id":null,"html_url":"https://github.com/ncsa/http-logger","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ncsa/http-logger","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ncsa%2Fhttp-logger","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ncsa%2Fhttp-logger/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ncsa%2Fhttp-logger/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ncsa%2Fhttp-logger/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ncsa","download_url":"https://codeload.github.com/ncsa/http-logger/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ncsa%2Fhttp-logger/sbom","scorecard":{"id":677550,"data":{"date":"2025-08-11","repo":{"name":"github.com/ncsa/http-logger","commit":"8ab6d5d2f508a84798aa5ea47d491a9711ad51b7"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3,"checks":[{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":0,"reason":"Found 0/22 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-21T21:59:22.953Z","repository_id":57644107,"created_at":"2025-08-21T21:59:22.953Z","updated_at":"2025-08-21T21:59:22.953Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28477941,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T06:30:42.265Z","status":"ssl_error","status_checked_at":"2026-01-16T06:30:16.248Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["http","log","rpz","sinkhole"],"created_at":"2026-01-16T06:45:04.038Z","updated_at":"2026-01-16T06:45:04.093Z","avatar_url":"https://github.com/ncsa.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"http-logger\n===========\n\nHTTP Logger is a bare bones web server intended to be used for an RPZ sinkhole.\n\nIt only has a few features:\n\n* Listens on http and https (if a key.pem and cert.pm are found).\n* Reponds to all GET and POST requests with a template.\n* Logs all requests details as a json record\n\nUsage\n=====\n\npkg/http-logger.service contains an example systemd unit file that will be\ninstalled if you build an rpm using `make rpm`.\n\nWe run it as a regular unpriveleged user and use iptables to redirect 80/443 to it using\n\n    iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080\n\nSSL Cert\n========\n\nBrowsers will hopefully not trust the certificate being used and users will not\nbe able to see the template if they reach the site over https.  As a\nworkaround, we generate the self signed cert for\n\n\tblocked-for-security-reasons-by.our.domain\n\nThat way a user may still see the message if the browser displays a message\nthat includes the common name of the certificate.\n\nExample log records\n===================\n\nrecords are normally logged on a single line, these are pretty printed\n\nFrom `http --form POST localhost:8080 my_header:hello key=value`\n\n    {\n      \"tls\": false,\n      \"formvalues\": {\n        \"key\": [ \"value\" ]\n      },\n      \"headers\": {\n        \"User-Agent\": [ \"HTTPie/0.8.0\" ],\n        \"My_header\": [ \"hello\" ],\n        \"Content-Type\": [ \"application/x-www-form-urlencoded; charset=utf-8\" ],\n        \"Content-Length\": [ \"9\" ],\n        \"Accept-Encoding\": [ \"gzip, deflate\" ],\n        \"Accept\": [ \"*/*\" ]\n      },\n      \"url\": \"/\",\n      \"host\": \"localhost:8080\",\n      \"method\": \"POST\",\n      \"clientip\": \"127.0.0.1\",\n      \"ts\": \"2017-06-12 17:41:14.087867926 -0400 EDT\"\n    }\n\nFrom `http GET localhost:8080`\n\n    {\n      \"tls\": false,\n      \"formvalues\": {},\n      \"headers\": {\n        \"User-Agent\": [ \"HTTPie/0.8.0\" ],\n        \"Accept-Encoding\": [ \"gzip, deflate\" ],\n        \"Accept\": [ \"*/*\" ]\n      },\n      \"url\": \"/\",\n      \"host\": \"localhost:8080\",\n      \"method\": \"GET\",\n      \"clientip\": \"127.0.0.1\",\n      \"ts\": \"2017-06-12 17:41:18.537753883 -0400 EDT\"\n    }\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fncsa%2Fhttp-logger","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fncsa%2Fhttp-logger","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fncsa%2Fhttp-logger/lists"}