From 579af3c44200a8325bd2eec9e6ff0ec28fa7125b Mon Sep 17 00:00:00 2001 From: Sadie Powell Date: Thu, 29 Feb 2024 14:49:39 +0000 Subject: Rip out ns_access and related code. This is wildly insecure and has been disabled by default for at least a decade. --- modules/webcpanel/pages/chanserv/set.cpp | 11 ------ modules/webcpanel/pages/nickserv/access.cpp | 39 -------------------- modules/webcpanel/pages/nickserv/access.h | 27 -------------- modules/webcpanel/pages/nickserv/info.cpp | 10 ------ .../webcpanel/templates/default/chanserv/set.html | 4 --- .../templates/default/nickserv/access.html | 42 ---------------------- .../webcpanel/templates/default/nickserv/info.html | 4 --- modules/webcpanel/webcpanel.cpp | 9 +---- modules/webcpanel/webcpanel.h | 1 - 9 files changed, 1 insertion(+), 146 deletions(-) delete mode 100644 modules/webcpanel/pages/nickserv/access.cpp delete mode 100644 modules/webcpanel/pages/nickserv/access.h delete mode 100644 modules/webcpanel/templates/default/nickserv/access.html (limited to 'modules/webcpanel') diff --git a/modules/webcpanel/pages/chanserv/set.cpp b/modules/webcpanel/pages/chanserv/set.cpp index f04accf9c..151f0b0ea 100644 --- a/modules/webcpanel/pages/chanserv/set.cpp +++ b/modules/webcpanel/pages/chanserv/set.cpp @@ -76,14 +76,6 @@ bool WebCPanel::ChanServ::Set::OnRequest(HTTPProvider *server, const Anope::stri ci->Shrink("RESTRICTED"); replacements["MESSAGES"] = "Restricted updated"; } - if (ci->HasExt("CS_SECURE") != message.post_data.count("secure")) - { - if (!ci->HasExt("CS_SECURE")) - ci->Extend("CS_SECURE"); - else - ci->Shrink("CS_SECURE"); - replacements["MESSAGES"] = "Secure updated"; - } if (ci->HasExt("SECUREOPS") != message.post_data.count("secureops")) { if (!ci->HasExt("SECUREOPS")) @@ -132,9 +124,6 @@ bool WebCPanel::ChanServ::Set::OnRequest(HTTPProvider *server, const Anope::stri if (ci->HasExt("RESTRICTED")) replacements["RESTRICTED"]; - if (ci->HasExt("CS_SECURE")) - replacements["SECURE"]; - if (ci->HasExt("SECUREOPS")) replacements["SECUREOPS"]; diff --git a/modules/webcpanel/pages/nickserv/access.cpp b/modules/webcpanel/pages/nickserv/access.cpp deleted file mode 100644 index 969ae737b..000000000 --- a/modules/webcpanel/pages/nickserv/access.cpp +++ /dev/null @@ -1,39 +0,0 @@ -/* - * (C) 2003-2024 Anope Team - * Contact us at team@anope.org - * - * Please read COPYING and README for further details. - */ - -#include "../../webcpanel.h" - -WebCPanel::NickServ::Access::Access(const Anope::string &cat, const Anope::string &u) : WebPanelProtectedPage(cat, u) -{ -} - -bool WebCPanel::NickServ::Access::OnRequest(HTTPProvider *server, const Anope::string &page_name, HTTPClient *client, HTTPMessage &message, HTTPReply &reply, NickAlias *na, TemplateFileServer::Replacements &replacements) -{ - if (message.post_data.count("access") > 0) - { - std::vector params; - params.emplace_back("ADD"); - params.push_back(message.post_data["access"]); - - WebPanel::RunCommand(client, na->nc->display, na->nc, "NickServ", "nickserv/access", params, replacements); - } - else if (message.get_data.count("del") > 0 && message.get_data.count("mask") > 0) - { - std::vector params; - params.emplace_back("DEL"); - params.push_back(message.get_data["mask"]); - - WebPanel::RunCommand(client, na->nc->display, na->nc, "NickServ", "nickserv/access", params, replacements); - } - - for (const auto &access : na->nc->access) - replacements["ACCESS"] = access; - - TemplateFileServer page("nickserv/access.html"); - page.Serve(server, page_name, client, message, reply, replacements); - return true; -} diff --git a/modules/webcpanel/pages/nickserv/access.h b/modules/webcpanel/pages/nickserv/access.h deleted file mode 100644 index 56daf52aa..000000000 --- a/modules/webcpanel/pages/nickserv/access.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - * (C) 2003-2024 Anope Team - * Contact us at team@anope.org - * - * Please read COPYING and README for further details. - */ - -#pragma once - -namespace WebCPanel -{ - -namespace NickServ -{ - -class Access final - : public WebPanelProtectedPage -{ -public: - Access(const Anope::string &cat, const Anope::string &u); - - bool OnRequest(HTTPProvider *, const Anope::string &, HTTPClient *, HTTPMessage &, HTTPReply &, NickAlias *, TemplateFileServer::Replacements &) override; -}; - -} - -} diff --git a/modules/webcpanel/pages/nickserv/info.cpp b/modules/webcpanel/pages/nickserv/info.cpp index f32ee8c82..54b9c75c5 100644 --- a/modules/webcpanel/pages/nickserv/info.cpp +++ b/modules/webcpanel/pages/nickserv/info.cpp @@ -56,14 +56,6 @@ bool WebCPanel::NickServ::Info::OnRequest(HTTPProvider *server, const Anope::str na->nc->Shrink("NS_PRIVATE"); replacements["MESSAGES"] = "Private updated"; } - if (na->nc->HasExt("NS_SECURE") != message.post_data.count("secure")) - { - if (!na->nc->HasExt("NS_SECURE")) - na->nc->Extend("NS_SECURE"); - else - na->nc->Shrink("NS_SECURE"); - replacements["MESSAGES"] = "Secure updated"; - } if (message.post_data["kill"] == "on" && !na->nc->HasExt("KILLPROTECT")) { na->nc->Extend("KILLPROTECT"); @@ -102,8 +94,6 @@ bool WebCPanel::NickServ::Info::OnRequest(HTTPProvider *server, const Anope::str replacements["AUTOOP"]; if (na->nc->HasExt("NS_PRIVATE")) replacements["PRIVATE"]; - if (na->nc->HasExt("NS_SECURE")) - replacements["SECURE"]; if (na->nc->HasExt("KILLPROTECT")) replacements["KILL_ON"]; if (na->nc->HasExt("KILL_QUICK")) diff --git a/modules/webcpanel/templates/default/chanserv/set.html b/modules/webcpanel/templates/default/chanserv/set.html index 9437ca71a..bc785c567 100644 --- a/modules/webcpanel/templates/default/chanserv/set.html +++ b/modules/webcpanel/templates/default/chanserv/set.html @@ -64,10 +64,6 @@ Restricted - - Secure - - Secure Ops diff --git a/modules/webcpanel/templates/default/nickserv/access.html b/modules/webcpanel/templates/default/nickserv/access.html deleted file mode 100644 index 6387da854..000000000 --- a/modules/webcpanel/templates/default/nickserv/access.html +++ /dev/null @@ -1,42 +0,0 @@ -{INCLUDE header.html} -
Nick access list
-
- {FOR M IN MESSAGES} -
- {M}
-
- {END FOR} - - {IF EXISTS ACCESS} - - - {FOR A IN ACCESS} - - - - - {END FOR} - -
{A}Delete
- {ELSE} - Your access list is empty. - {END IF} - -
- -

Add an access entry

-
-
- -
- -
-
-
-
- -
-
-
-
-{INCLUDE footer.html} diff --git a/modules/webcpanel/templates/default/nickserv/info.html b/modules/webcpanel/templates/default/nickserv/info.html index 667c8b370..676e6cf76 100644 --- a/modules/webcpanel/templates/default/nickserv/info.html +++ b/modules/webcpanel/templates/default/nickserv/info.html @@ -48,10 +48,6 @@ Private: - - Secure: - - Kill: diff --git a/modules/webcpanel/webcpanel.cpp b/modules/webcpanel/webcpanel.cpp index 53243103c..1a0d22003 100644 --- a/modules/webcpanel/webcpanel.cpp +++ b/modules/webcpanel/webcpanel.cpp @@ -27,7 +27,6 @@ class ModuleWebCPanel final WebCPanel::NickServ::Info nickserv_info; WebCPanel::NickServ::Cert nickserv_cert; - WebCPanel::NickServ::Access nickserv_access; WebCPanel::NickServ::Alist nickserv_alist; WebCPanel::NickServ::Confirm nickserv_confirm; @@ -51,7 +50,7 @@ public: id(this, "webcpanel_id"), ip(this, "webcpanel_ip"), last_login(this, "webcpanel_last_login"), style_css("style.css", "/static/style.css", "text/css"), logo_png("logo.png", "/static/logo.png", "image/png"), cubes_png("cubes.png", "/static/cubes.png", "image/png"), favicon_ico("favicon.ico", "/favicon.ico", "image/x-icon"), index("/"), logout("/logout"), _register("/register"), confirm("/confirm"), - nickserv_info("NickServ", "/nickserv/info"), nickserv_cert("NickServ", "/nickserv/cert"), nickserv_access("NickServ", "/nickserv/access"), nickserv_alist("NickServ", "/nickserv/alist"), nickserv_confirm("NickServ", "/nickserv/confirm"), + nickserv_info("NickServ", "/nickserv/info"), nickserv_cert("NickServ", "/nickserv/cert"), nickserv_alist("NickServ", "/nickserv/alist"), nickserv_confirm("NickServ", "/nickserv/confirm"), chanserv_info("ChanServ", "/chanserv/info"), chanserv_set("ChanServ", "/chanserv/set"), chanserv_access("ChanServ", "/chanserv/access"), chanserv_akick("ChanServ", "/chanserv/akick"), chanserv_modes("ChanServ", "/chanserv/modes"), chanserv_drop("ChanServ", "/chanserv/drop"), memoserv_memos("MemoServ", "/memoserv/memos"), hostserv_request("HostServ", "/hostserv/request"), operserv_akill("OperServ", "/operserv/akill") @@ -99,11 +98,6 @@ public: provider->RegisterPage(&this->nickserv_cert); } - ss.name = "Access"; - ss.url = "/nickserv/access"; - s.subsections.push_back(ss); - provider->RegisterPage(&this->nickserv_access); - ss.name = "AList"; ss.url = "/nickserv/alist"; s.subsections.push_back(ss); @@ -219,7 +213,6 @@ public: provider->UnregisterPage(&this->nickserv_info); provider->UnregisterPage(&this->nickserv_cert); - provider->UnregisterPage(&this->nickserv_access); provider->UnregisterPage(&this->nickserv_alist); provider->UnregisterPage(&this->nickserv_confirm); diff --git a/modules/webcpanel/webcpanel.h b/modules/webcpanel/webcpanel.h index 720f0d2a2..d83c12043 100644 --- a/modules/webcpanel/webcpanel.h +++ b/modules/webcpanel/webcpanel.h @@ -170,7 +170,6 @@ namespace WebPanel #include "pages/nickserv/info.h" #include "pages/nickserv/cert.h" -#include "pages/nickserv/access.h" #include "pages/nickserv/alist.h" #include "pages/nickserv/confirm.h" -- cgit