Tovább a tartalomhoz

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.

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.

  • 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.
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.

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:

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások