13.24
Korlátok és biztonság
Az API-t úgy építettük fel, hogy egy kulccsal soha ne lehessen ártani egy szervernek, még akkor sem, ha kiszivárog. A következő védelmek minden kérésre érvényesek.
Minden végponton a Prémium ellenőrzése fut le először, még a kulcs megkeresése és bármilyen korlát számlálása előtt, így az élő előfizetés nélküli szerver mindig ugyanazt a 402 választ kapja, nem pedig egy félig végrehajtott kérést.
- Nincs tömeges említés. Az API-n át küldött minden üzenetben (a webhookos üzeneteket és a címkéket is beleértve) ki van kapcsolva az
@everyone, a@hereés a tetszőleges rangemlítés. Jegy nyitásakor csak a panelhez beállított rang és a jegy nyitója említhető. - Nincs megszemélyesítés. A webhookok olyan megjelenő neveit, amelyekben fenntartott szavak szerepelnek, például "discord" vagy "clyde", lecseréljük, a saját profilkép pedig csak érvényes
https://hivatkozás lehet. - Prémium szükséges. Az API prémium funkció. Élő előfizetés nélkül minden kérés
402választ ad apremium_required: truemezővel, új kulcsot pedig nem lehet létrehozni vagy cserélni. - Kéréskorlátok. Minden kulcsnak műveletenként külön korlátja van (például: jegy nyitása percenként 10, üzenetküldés percenként 30, átnevezés 10 percenként 2, panelcsere 10 percenként 2, panelmódosítás percenként 10, panel újraküldése 10 percenként 4, olvasás percenként 120). A korlát túllépése
429választ ad másodpercben megadottretry_afterértékkel. A mostani táblázatot aGET /api/tokenhívással kéred le. - A nehéz lekérdezéseknek külön korlátjuk van. Az átiratokban való keresés és a HTML-átiratok letöltése percenként 10-10 kérést kap, a teljes indexelt átiratok pedig percenként 30-at, így soha nem a bőkezű, percenkénti 120 olvasásból fogyasztanak. A keresésből ráadásul az egész szerveren legfeljebb kettő fut egyszerre, és
504válasszal leáll, ha túllépi az időkeretét, így a keresések forgalma soha nem veszi el a helyet a jegyek elől. - Felső korlát a nyitott jegyekre. Amint egy szerver eléri a nyitott jegyek biztonsági korlátját, az API nem nyit többet, tiltólistás felhasználónak pedig egyáltalán nem nyit jegyet.
- A lehető legkevesebb jog. Az érzékeny jogosultságok (Jegyüzenetek olvasása, Átiratok megtekintése, Keresés az átiratokban, HTML-átiratok letöltése, Címkék használata, Jegyek átnevezése, Panelek kezelése, Jegy paneljének cseréje) alapból ki vannak kapcsolva, és kulcsonként külön kell bekapcsolni őket.
- A régi adatok olvasása naplózott. A teljes HTML-átirat letöltése bekerül a szerver tevékenységnaplójába azzal a kulccsal együtt, amelyikkel történt, ahogy minden módosítás is, amit az API végez.
- A panelek a beállításaidhoz kötve maradnak. A Panelek kezelése jog csak a panel megjelenését változtatja (név, beágyazott üzenet, gombok). A csatornák, kategóriák, említendő rangok, űrlapok és támogatói csapatok nem módosíthatók az API-n keresztül.
- Lejárat és csere. A kulcsokhoz lejárat állítható, kikapcsolhatók vagy kicserélhetők a vezérlőpultról; a csere azonnal érvényteleníti a korábbi titkot.
- Egyetlen szerverre szól. A kulcs csak azon a szerveren működik, ahol létrehozták, és ezt minden kérésnél újra ellenőrizzük.