Biztonsági összefoglaló
Hogyan kezeli a Gravity Forms a biztonságot: hibabejelentés, automatikus frissítés, az OWASP Top Ten kockázatai és a REST API védelme.
Ez a fejezet a Gravity Forms biztonsági felépítését foglalja össze. Döntéshozóknak és fejlesztőknek is szól, akik értékelik, hogyan véd a bővítmény a gyakori fenyegetések ellen.
Alapok
Szekció neve “Alapok”A Gravity Forms űrlapkezelő rendszer, GPLv2 (vagy újabb) licenccel. A Rocketgenius Inc. fejleszti, vezetősége a három alapító (Alex Cancado, Carl Hancock és Kevin Flahaut), akik a fejlesztésről és a közösségi kezdeményezésekről is döntenek. A szoftver 2007 óta készül, és az OWASP Top Ten kockázataival szemben folyamatosan keményítik.
Egy fő (major) verzión belül a kisebb és javító kiadások visszafelé kompatibilisek, a fő verzióváltás törést okozhat. Mindig a legfrissebb stabil kiadást érdemes futtatni.
Sebezhetőségek kezelése
Szekció neve “Sebezhetőségek kezelése”- A fejlesztők biztonsági szakemberekkel dolgoznak együtt, és felelős közzétételt (responsible disclosure) követnek. Egy korábbi példa: a Fájlfeltöltés mező tetszőleges fájlfeltöltési hibáját az 1.8.20 javította.
- Kutatók és ügyfelek külön csatornán jelenthetnek hibát; a fejlesztők zárt tárolóban dolgoznak.
- Minden bejelentést visszaigazolnak, ellenőriznek és súlyossági besorolást adnak. Megerősített hibára javítás készül, amely a következő kiadásban vagy azonnali biztonsági kiadásban jelenik meg.
- Minden kiadásról közlemény készül a blogon; a hibát felelősen bejelentő nevét megemlítik. A részletek megbízható félnek kérésre elérhetők.
- A rendszergazdák az irányítópulton értesítést kapnak az új kiadásról. Ha az automatikus háttérfrissítés be van kapcsolva, a biztonsági javítás magától települ. Ezt a Gravity Forms beállításaiban vagy a WordPress konfigurációs fájljában ki lehet kapcsolni, de nem ajánlott. A frissítések kezeléséről lásd: Régi verziók és kézi frissítés.
Az OWASP Top Ten kockázatai
Szekció neve “Az OWASP Top Ten kockázatai”| Kockázat | Védekezés |
|---|---|
| Hibás hozzáférés-szabályozás | A funkciószintű kérések végrehajtás előtt jogosultság-ellenőrzésen mennek át, az admin oldalak a hitelesítéshez kötöttek. Az űrlap- és bejegyzésazonosítók láthatók, de a jogosultsági rendszer megakadályozza a jogosulatlan lekérést. |
| CSRF | A WordPress nonce-tokenjeit használja (felhasználóhoz, művelethez, objektumhoz és időszakhoz kötött, kijelentkezéskor érvénytelenné válik). |
| Nem ellenőrzött átirányítás | A wp_safe_redirect() függvényt használja. |
| Hibás biztonsági konfiguráció | A beállításokat egyetlen jogosult rendszergazda módosíthatja, az alapértékeket a fejlesztők folyamatosan értékelik. |
| XXE | A WordPress és a Gravity Forms XML feldolgozáskor letiltja az egyedi XML-entitások betöltését. |
| Ellátási lánc hibái | A kevés külső könyvtárat figyelik, szükség esetén lecserélik vagy elágaztatják. |
| Kriptográfiai hibák | A felhasználói jelszavakat a WordPress sózza és hasheli; a bejegyzések adatait a jogosultsági rendszer védi. |
| Injektálás | A WordPress adatellenőrző és tisztító függvényeit használja HTML-ben, URL-ben, HTTP-fejlécben, adatbázisban és fájlrendszerben. A feltölthető fájltípusokat szűrőkkel és beállításokkal tovább lehet szűkíteni. |
| XSS | A megbízható felhasználók (az egyes telepítés rendszergazdái, multisite-on a webhely rendszergazdái és az űrlapszerkesztésre jogosultak) tehetnek szűretlen HTML-t vagy JavaScriptet például a megerősítésbe vagy a mezőcímkébe. A nem megbízható felhasználók tartalma alapból szűrt. |
| Hitelesítési hibák | A WordPress kezeli a fiókokat és a munkameneteket; a sütik szerveroldalon ellenőrzöttek, kijelentkezéskor a munkamenet megszűnik. A REST API OAuth 1.0a-t (HMAC-SHA1) használ munkamenet nélküli kapcsolatokhoz. |
A WordPress HTTP-kérései szűrve vannak: a loopback és a privát IP-címek nem érhetők el, és csak bizonyos szabványos portok engedélyezettek. A Gravity Forms minden HTTP-kéréshez a WordPress HTTP API-ját használja.
REST API biztonsága
Szekció neve “REST API biztonsága”A REST API v2 az űrlapokhoz, bejegyzésekhez és beküldésekhez ad programozott hozzáférést. Alapból ki van kapcsolva, a rendszergazdának kell bekapcsolnia az Űrlapok → Beállítások → REST API oldalon.
- Hitelesítés: az ajánlott módszer az OAuth 1.0a HMAC-SHA1 aláírással (HTTPS nélküli kapcsolathoz kötelező). Az alapszintű hitelesítés csak HTTPS-en használható, különben a hitelesítő adatok szövegesen mennének át. A WordPress alkalmazásjelszavai a 2.4.21.4 óta támogatottak. Bejelentkezett admin munkamenetből jövő kérés a WordPress süti- és nonce-hitelesítésére esik vissza.
- Hozzáférés: a kulcsok Consumer Key és Consumer Secret párként készülnek, egy WordPress-felhasználóhoz kötve, olvasási, írási vagy olvasási/írási jogosultsággal. A kérés a felhasználó Gravity Forms jogosultságaival fut, ezért jogosultság nélkül érvényes kulccsal sem végezhető el a művelet. A jogosultsági követelmények szűrőkkel módosíthatók. A beküldés végpontja szándékos kivétel: nincs szükség Gravity Forms jogosultságra, hogy a nyilvános űrlapok API-n át is beküldhetők legyenek.
A WordPress API-k, amelyekre a védelem épül
Szekció neve “A WordPress API-k, amelyekre a védelem épül”- Adatbázis API: az adatbázis-hozzáférés mindig ezen át megy.
- HTTP API: minden HTTP-kérés ezen át megy; kezeli a sütiket, a tömörítést és a protokoll részleteit.
- Jogosultság- és aktuális felhasználó API: ezzel védekezik a jogosulatlan hozzáférés ellen.
A szerepkörök és jogosultságok beállításáról a Szerepkörök fejezet szól.
Készült: