{"id":13636355,"url":"https://github.com/p0pr0ck5/lua-resty-tarpit","last_synced_at":"2025-04-06T08:31:54.773Z","repository":{"id":25653013,"uuid":"29088450","full_name":"p0pr0ck5/lua-resty-tarpit","owner":"p0pr0ck5","description":"OpenResty response time inflation","archived":false,"fork":false,"pushed_at":"2022-10-11T08:15:26.000Z","size":4,"stargazers_count":26,"open_issues_count":1,"forks_count":5,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-02-14T17:33:33.024Z","etag":null,"topics":["brute-force","lua","nginx","openresty"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/p0pr0ck5.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-01-11T10:42:52.000Z","updated_at":"2023-11-09T18:09:06.000Z","dependencies_parsed_at":"2023-01-14T03:03:27.893Z","dependency_job_id":null,"html_url":"https://github.com/p0pr0ck5/lua-resty-tarpit","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/p0pr0ck5%2Flua-resty-tarpit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/p0pr0ck5%2Flua-resty-tarpit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/p0pr0ck5%2Flua-resty-tarpit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/p0pr0ck5%2Flua-resty-tarpit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/p0pr0ck5","download_url":"https://codeload.github.com/p0pr0ck5/lua-resty-tarpit/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247457358,"owners_count":20941901,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["brute-force","lua","nginx","openresty"],"created_at":"2024-08-02T00:01:00.308Z","updated_at":"2025-04-06T08:31:54.529Z","avatar_url":"https://github.com/p0pr0ck5.png","language":"Lua","funding_links":[],"categories":["Libraries","Hacks"],"sub_categories":[],"readme":"##Name\n\nlua-resty-tarpit - capture and delay unwanted requests\n\n##Status\n\nlua-resty-tarpit is in early development and is considered production ready.\n\n##Description\n\nlua-resty-tarpit provides rate-limit protection for sensitive resources. It leverages Nginx's non-blocking archtitecture to artificially increase response latency for resources that are repeatedly accessed. This functionality is designed to protect resources that are publicly accessible, but vulnerable to some form of brute-force attack (e.g., web application admnistrative login pages). It was inspired by the TARPIT iptables module.\n\n##Installation\n\nClone the lua-resty-tarpit repo into Nginx/OpenResty's Lua package path. Module setup and configuration is detailed in the synopsis.\n\n##Synopsis\n\n```lua\n\thttp {\n\t\tlua_shared_dict tarpit 10m;\n\t}\n\n\tserver {\n\t\tlocation /login { # or whatever resource you want to protect\n\t\t\taccess_by_lua '\n\t\t\t\tlocal t = require \"tarpit\"\n\t\t\t\tt.tarpit(\n\t\t\t\t\t5, -- request limit\n\t\t\t\t\t5, -- reset timer\n\t\t\t\t\t1, -- delay time\n\t\t\t\t)\n\t\t\t';\n\t\t}\n\t}\n```\n\n##Limitations\n\nlua-resty-tarpit is undergoing continual development and improvement, and as such, may be limited in its functionality and performance. Currently known limitations can be found within the GitHub issue tracker for this repo. \n\n##License\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program.  If not, see \u003chttp://www.gnu.org/licenses/\u003e\n\n##Bugs\n\nPlease report bugs by creating a ticket with the GitHub issue tracker.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fp0pr0ck5%2Flua-resty-tarpit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fp0pr0ck5%2Flua-resty-tarpit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fp0pr0ck5%2Flua-resty-tarpit/lists"}