Sicherheitscheckliste für Apps
Diese Checkliste richtet sich an App-Entwickler und an den Administrator der Installation, mit der die App spricht. Gehen Sie sie vor dem ersten Release durch und erneut, wann immer sich Zugangsdaten, Rollen oder Endpunkte ändern.
Inhalt
Zugangsdaten
- To do: Kein OAuth-Client-Secret, kein persönlicher API-Schlüssel und kein expservices-Token steht im Code, in den Ressourcen oder in der Konfiguration der App (Zugangsdaten auswählen).
- To do: Der OAuth-Codeaustausch und das Erneuern laufen in einem Backend, das das Client-Secret hält (Ein Backend für Ihre App).
- To do: Die App ordnet den OAuth-Rückruf selbst zu, da
statenicht zurückgegeben wird (OAuth2-Autorisierungscode-Ablauf). - To do:
response_type=tokenwird nicht verwendet. - To do: Schlüssel von Backends und Werkzeugen haben die kleinsten Geltungsbereiche und eine Laufzeit, und ein Termin für den Austausch steht im Kalender.
- To do:
expk_undexpt_stehen im Secret-Scanner jedes Repositorys.
Konten und Rollen
- To do: Jede App hat ihren eigenen Integrationsbenutzer; keine verwendet den Administrator oder das Konto einer Person.
- To do:
content/readist auf die Bereiche oder Teilbäume beschränkt, die die App zeigt. - To do: Schreibrichtlinien sind auf einen Ordner und die Klassen beschränkt, die die App anlegt.
- To do: Keine Richtlinien für
setup,classoderuserfür App-Benutzer. - To do:
oauth/authorizenur für die Rollen der Personen, die die App benutzen (Berechtigungen für App-Benutzer).
Transport
- To do: Jede Anfrage verwendet HTTPS; erwägen Sie
rest.ini [Authentication] RequireHTTPS=enabledauf dem Server. - To do: Der Header
Authorizationerreicht PHP auf jedem Server und durch jeden Proxy (Der Authorization-Header und Proxys). - To do: Proxys und CDNs speichern Antworten auf Anfragen mit
Authorizationnicht zwischen. - To do: Zugangsdaten werden nie in einer URL gesendet.
In der App
- To do: Tokens liegen in Keychain oder Keystore, nicht in Einstellungen oder Dateien (Geheimnisse auf Geräten speichern).
- To do: Die HTTP-Protokollierung entfernt
AuthorizationundX-Exp-Token, in jedem Build, der die Maschine des Entwicklers verlässt. - To do: Das Abmelden löscht Tokens und widerruft expservices-Tokens.
- To do: Gerendertes HTML (
renderedOutput) wird in einer Web View ohne Skripte angezeigt, die es nicht braucht, und externe Links öffnen sich im Systembrowser (Gerenderte XHTML-Ausgabe).
Schreibzugriffe
- To do: Beim Entfernen bittet die App den Benutzer um Bestätigung (Inhalte anlegen und entfernen).
- To do: Wiederholte Anlegeversuche können keine Inhalte verdoppeln (Remote-IDs,
409). - To do: Jeder Upload-Endpunkt, der für die App gebaut wird, prüft Größe, Typ anhand des Inhalts und Berechtigungen (Dateien und Uploads).
Browser-Apps
- To do: CORS-Header, die im Webserver ergänzt werden, nennen ausdrückliche Origins und decken nur die API-Pfade ab (Web-Apps, CORS und CSP).
- To do: Die Content Security Policy erlaubt die Verbindungen der App und nichts darüber hinaus.
Überwachung
- To do: Nach jedem Release liest jemand den Kanal
accessdes Prüfprotokolls:access.apikey.use.failed,access.expservices.token.failed(App-Aktivität nachvollziehen). - To do: Es gibt einen Plan für durchgesickerte Zugangsdaten: widerrufen, austauschen, Prüfprotokoll kontrollieren.
Verwandte Seiten
- Sicherheit für Anwendungen
- Sicherheitshärtung
- Persönliche API-Schlüssel: Sicherheitshinweise
- Freie Dokumentation: Diese Seite darf unter der GNU FDL 1.3 frei kopiert, übersetzt und verbessert werden.
Werden Sie Exponential-Partner
Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.