Share via


Beispielcheckliste für die Codeabnahme für IT-Organisationen

Websites, die auf Microsoft Office SharePoint Server 2007 basieren, enthalten oft benutzerdefinierte Lösungen. Die Möglichkeit zum Anpassen von Websites durch Hinzufügen benutzerdefinierter Lösungen bedeutet für Microsoft Office SharePoint Server 2007 Leistungsfähigkeit und Flexibilität. Allerdings kann ein mangelhaft entworfenes oder implementiertes ausführbares Modul, das in einer SharePoint-Serverfarm ausgeführt wird, auch über die eigentliche Webanwendung hinaus Schaden anrichten. Mangelhaft implementierte benutzerdefinierte Lösungen können Sicherheits- oder Leistungsrisiken bedeuten, die Supportkosten erhöhen, die Bereitstellung komplizieren und die Produktivität verringern.

Die Auswirkungen der Installation benutzerdefinierter Lösungen in einer SharePoint-Serverfarm können positiv oder negativ sein. Deshalb wird empfohlen, alle benutzerdefinierten Lösungen vor der Bereitstellung in der Produktionsumgebung sorgfältig zu überprüfen. Dabei sollten folgende Bereiche überprüft werden:

Darüber hinaus wird empfohlen, dass Entwickler eine Checkliste einreichen, um sicherzustellen, dass ihre Lösungen gemäß den bewährten Methoden codiert und getestet wurden.

Sie können die folgende Beispielcheckliste für die Codeabnahme verwenden, um zu gewährleisten, dass die von Ihnen bereitgestellten Lösungen die vorgesehenen Vorteile bieten, ohne das Unternehmen unnötigen Risiken auszusetzen. Verwenden Sie diese Liste als Ausgangspunkt für Ihre eigene Checkliste, um die Qualität von Lösungen zu überprüfen, die für die Bereitstellung eingereicht werden. Die Checkliste für die Codeabnahme kann aber nicht nur für die Überprüfung entwickelter Lösung verwendet werden, sondern ist eventuell auch ein gutes Trainingstool. Wenn Entwickler diese Checkliste vor der Implementierung ihrer Anpassungen erhalten, können Sie Ihre Erwartungen hinsichtlich der Qualität der entwickelten Lösungen weitergeben.

Wichtig

Diese Beispielcheckliste dient nur zu Informationszwecken. Es kann nicht davon ausgegangen werden, dass alle Codeabnahmeprobleme in dieser Checkliste behandelt werden oder dass für Ihre Organisation keine zusätzlichen Sicherheitsmaßnahmen erforderlich sind. Diese Checkliste stellt keine ausdrückliche oder konkludente Garantie dar.

Inhalt dieses Themas

Ressourcen für bewährte Methoden bei der SharePoint-Entwicklung

Dieser Abschnitt enthält eine Liste mit Ressourcen, die Sie Entwicklern bereitstellen können, um sie beim Entwerfen und Implementieren von Lösungen zu unterstützen, die Ihre IT-Anforderungen im Hinblick auf Verwendbarkeit, Supportfähigkeit, Leistung und Sicherheit erfüllen.

Checkliste für die Codeabnahme

In diesem Abschnitt sind die Checklisten für die Codeabnahme nach den folgenden Kategorien angeordnet: Sicherheit, Sitzungsverwaltung, Gültigkeitsprüfung, vertrauliche Daten, Ausnahmebehandlung, Webparts, Dokumentation, allgemeine bewährte Methoden für die Softwareentwicklung. Eine druckbare und bearbeitbare Version der gesamten Checkliste finden Sie unter Druckbare Version der Checkliste für die Codeabnahme (https://go.microsoft.com/fwlink/?linkid=125134&clcid=0x407)

Hinweis

Die Checklisten in diesem Dokument werden als Beispiel bereitgestellt, mit denen Sie Ihre eigenen Checklisten für die Codeabnahme entsprechend den Anforderungen Ihres Unternehmens entwickeln können. Verwenden Sie diese Checklisten als Ausgangspunkt zum Entwickeln Ihrer eigenen Checkliste.

Sicherheit

Dieser Abschnitt der Checkliste für die Codeabnahme enthält empfohlene Elemente, um sicherzustellen, dass Lösungen, die für die Bereitstellung in einer SharePoint-Umgebung eingereicht werden, gemäß den bewährten Methoden zur Sicherheit entwickelt wurden.

[ ]

Die Anwendung verwendet eine Einschlussliste (bekannte, gültige und sichere Eingaben) anstelle einer Ausschlussliste (Ablehnung bekannter bösartiger oder gefährlicher Eingaben).

[ ]

Die gesamte Benutzereingabe ist bei der Anzeige für Clients mit IOSec codiert.

[ ]

Die Zeichencodierung wird vom Server festgelegt (ISO-8859-1 wird empfohlen).

[ ]

Nur-Text-Kennwörter sind in Web.config, Machine.config oder Dateien, die Konfigurationseinstellungen enthalten, nicht vorhanden. Dienstprogramme wie Aspnet_setreg.exe und Trustee oder die Identitätseinstellung in AppPool unter IIS 6.0 oder IIS 7.0 werden zum Verschlüsseln von Anmeldeinformationen verwendet.

[ ]

Wenn Cookies vertrauliche Daten enthalten, sind diese als sicher gekennzeichnet.

[ ]

Eingabebenutzeroberflächen in Webparts und anderen Anpassungen beinhalten Begrenzungsprüfungen, Prüfungen der Eingabedatenintegrität und entsprechende Ausnahmebehandlung zum Schutz vor websiteübergreifenden Skriptangriffen und Angriffen durch Einschleusung von SQL-Befehlen.

[ ]

Der Entwurf berücksichtigt mögliche Kanonisierungsprobleme.

[ ]

Sie vermeiden die Verwendung von AllowUnsafeUpdates. Sie verwenden ValidateFormDigest() und bei Bedarf erhöhte Rechte für die Interaktion mit SharePoint-Objekten. In Fällen, in denen AllowUnsafeUpdates verwendet werden muss, stellen Sie sicher, dass AllowUnsafeUpdates im try-catch-finally-Block auf False festgelegt ist, oder Sie verwenden eine Dispose()-Methode (in Abhängigkeit von der IDisposable-Schnittstelle), um Sicherheitsprobleme zu vermeiden.

Sitzungsverwaltung

Dieser Abschnitt der Checkliste für die Codeabnahme enthält empfohlene Elemente, um sicherzustellen, dass Lösungen, die für die Bereitstellung in einer SharePoint-Umgebung eingereicht werden, gemäß den bewährten Methoden für die Sitzungsverwaltung entwickelt wurden.

[ ]

Der Sitzungsstatus ist leistungsstark, unvorhersehbar und vor unbefugten Zugriffen oder Replay-Angriffen geschützt.

[ ]

Die Sitzungsdauer ist auf maximal 30 Minuten Inaktivität beschränkt.

[ ]

Sitzungs-IDs werden nicht an die URL übergeben, und das ASP.NET-Feature der Sitzung ohne Cookies wird nicht verwendet.

[ ]

Der Sitzungsstatusdienst ist deaktiviert, wenn er nicht verwendet wird.

Gültigkeitsprüfung

Dieser Abschnitt der Checkliste für die Codeabnahme enthält empfohlene Elemente, um sicherzustellen, dass Lösungen, die für die Bereitstellung in einer SharePoint-Umgebung eingereicht werden, gemäß den bewährten Methoden für die Gültigkeitsprüfung der Eingabe entwickelt wurden.

[ ]

Die Gültigkeitsprüfung der Eingabe wird auf alle identifizierten Einstiegspunkte angewendet (einschließlich Formularfeldern, Abfragezeichenfolgen, Cookies, HTTP-Headern und Webdienstparametern).

[ ]

Die ASP.NET-Option validateRequest ist nach Möglichkeit aktiviert.

[ ]

Für Daten werden der Typ, die Länge, das Format und der Bereich überprüft.

[ ]

Die Sicherheit basiert nicht auf der clientseitigen Gültigkeitsprüfung. Vielmehr wird eine serverseitige Gültigkeitsprüfung vorgenommen.

[ ]

Die Anwendung verwendet die standardisierte Gültigkeitsprüfung der Eingabe wie beispielsweise Regex konsistent und übergreifend.

Vertrauliche Daten

Dieser Abschnitt der Checkliste für die Codeabnahme enthält empfohlene Elemente, um sicherzustellen, dass Lösungen, die für die Bereitstellung in einer SharePoint-Umgebung eingereicht werden, gemäß den bewährten Methoden für den Schutz vertraulicher Daten entwickelt wurden.

[ ]

Vertrauliche Daten werden von der Anwendung nicht im Klartextformat protokolliert.

[ ]

Vertrauliche Daten werden nicht in Cookies gespeichert.

[ ]

Vertrauliche Daten werden nicht in unverschlüsselten, ausgeblendeten Formularfeldern oder Abfragezeichenfolgen gespeichert. Sie werden mithilfe der serverseitigen Statusverwaltung verwaltet.

[ ]

Für den Schutz vertraulicher Daten während der Übertragung werden SSL, IPSec mit Verschlüsselung oder die Verschlüsselung auf Anwendungsebene vor der Übertragung verwendet.

[ ]

Vertrauliche Daten werden nicht zwischengespeichert. Die Zwischenspeicherung der Ausgabe ist standardmäßig deaktiviert.

[ ]

Für per E-Mail übertragene vertrauliche Daten wird in Abhängigkeit vom beabsichtigten Empfänger die S/MIME-Verschlüsselung oder die Verwaltung von Informationsrechten (Information Rights Management, IRM) verwendet.

Ausnahmebehandlung

Dieser Abschnitt der Checkliste für die Codeabnahme enthält empfohlene Elemente, um sicherzustellen, dass Lösungen, die für die Bereitstellung in einer SharePoint-Umgebung eingereicht werden, gemäß den bewährten Methoden für die Ausnahmebehandlung entwickelt wurden.

[ ]

Die Anwendung verwendet übergreifend eine standardisierte Methode für die strukturierte Fehler- und Ausnahmebehandlung.

[ ]

Fehlerbehandlungscode erbt von der SPException-Klasse, um ein einheitliches SharePoint-Erscheinungsbild für Fehler zu ermöglichen.

[ ]

Die Anwendung schlägt im Falle von Fehlern und Ausnahmen auf sichere Weise fehl.

[ ]

Ausnahmebedingungen verhindern, dass Benutzer Sicherheitsprüfungen umgehen, um privilegierten Code auszuführen

[ ]

Die Anwendung gibt allgemeine benutzerdefinierte Fehlermeldungen an den Client zurück.

[ ]

Im Code wird die Ausnahmebehandlung verwendet. Der Code fängt nur die Ausnahmen ab, über die Sie Bescheid wissen. Verwenden Sie beispielsweise try{} catch(Exception ex){} nicht, außer der Fehler wird erneut ausgelöst.

[ ]

Wenn im Code Ausnahmefilter verwendet werden, wird die Filterausführungsreihenfolge nicht berücksichtigt (Filter wird vor dem finally-Block ausgeführt).

[ ]

Anwendungsfehler enthalten keine vertraulichen Informationen oder Informationen, mit denen der Fehler ausgenutzt werden könnte.

Webparts

Dieser Abschnitt der Checkliste für die Codeabnahme enthält empfohlene Elemente, um sicherzustellen, dass Lösungen, die für die Bereitstellung in einer SharePoint-Umgebung eingereicht werden, gemäß den bewährten Methoden für die Entwicklung von Webparts entwickelt wurden.

[ ]

Benutzerdefinierte Webparts (einschließlich Ressourcendateien) sind in einem SharePoint-Feature enthalten und als SharePoint-Lösung verpackt, um bereitgestellt zu werden.

[ ]

Die Konfiguration von Webparts, die bereitgestellt werden, bietet dem Administrator die Flexibilität der Bereitstellung auf der Webanwendungsebene oder darunter.

[ ]

Sie verwenden die standardisierten Verbindungsschnittstellen der SharePoint-Webpartinfrastruktur, um Informationen zur Laufzeit auszutauschen.

[ ]

Quellcode für Webpartlösungen von Drittanbietern wird nach Möglichkeit mit entsprechender Dokumentation bereitgestellt, um einen guten technischen Support zu gewährleisten.

[ ]

Alle benutzerdefinierten Webparts stellen mithilfe der SharePoint-Architektur ein einheitliches Verhalten für die gesamte Anwendung im Hinblick auf Funktionen wie einmaliges Anmelden, Featurebereitstellung usw. sicher.

Dokumentation

Sie sollten entsprechende Dokumentation anfordern, um sicherzustellen, dass Anpassungen, die Sie bereitstellen sollen, installiert und unterstützt werden können und gründlich getestet wurden. Darüber hinaus werden alle von den Anpassungen generierten Fehler in der Dokumentation ordnungsgemäß beschrieben und identifiziert. Dieser Abschnitt der Checkliste für die Codeabnahme enthält empfohlene Elemente, um sicherzustellen, dass Lösungen, die für die Bereitstellung in einer SharePoint-Umgebung eingereicht werden, gemäß den bewährten Methoden für die Dokumentation entwickelt wurden.

[ ]

Anpassungen werden von Installationsanweisungen begleitet, in denen die Installation und Deinstallation des Pakets ausführlich beschrieben werden. Architekturdiagramme für die Installation der Lösung sind vorhanden. Wenn für eine Lösung kein Rollback möglich ist, muss dies in den Installationsanweisungen erläutert werden, damit Sie die Risiken analysieren und einen Plan für die Systemwiederherstellung vorbereiten können.

[ ]

Anpassungen werden von Testdokumenten und Ergebnissen begleitet.

[ ]

Anpassungen werden von einer Liste mit allen Abhängigkeiten begleitet. Hierzu können Konto/Kennwörter, Webdienste, Datenbanken, andere Lösungen oder Features, Patches, Toolsätze oder Bibliotheken sowie andere Abhängigkeiten zählen.

[ ]

Eine Liste mit allen Einträgen, die von den Anpassungen generiert werden, und die zu ergreifenden Maßnahmen werden bereitgestellt. Diese Liste kann in Form einer Tabelle mit Fehlercodes vorliegen, in der der Schweregrad und die Ursache für jeden Fehlercode aufgeführt sind.

[ ]

Optional wird Quellcode bereitgestellt, um die Gültigkeitsprüfung und die Tests durch die IT-Organisation zu beschleunigen.

[ ]

Anpassungen, die eine Aktualisierung zuvor bereitgestellter Anpassungen darstellen, sind von Dokumentation begleitet, in der die Änderungen, Hinweise zur Aktualisierung der Anpassungen sowie Rollbackanweisungen beschrieben werden.

Allgemeine bewährte Methoden für die Softwareentwicklung

Dieser Abschnitt der Checkliste für die Codeabnahme enthält empfohlene Elemente, um sicherzustellen, dass Lösungen, die für die Bereitstellung in einer SharePoint-Umgebung eingereicht werden, gemäß den bewährten Methoden für die Softwareentwicklung entwickelt wurden.

[ ]

Assemblys haben einen starken Namen. (Für dynamisch generierte ASP.NET-Webseitenassemblys sind derzeit keine starken Namen möglich.)

[ ]

Sie verwenden die verzögerte Signierung als Möglichkeit zum Schützen und Einschränken des privaten Schlüssels, der für den starken Namen und den Signiervorgang verwendet wird.

[ ]

Assemblys enthalten deklarative Sicherheitsattribute (mit SecurityAction.RequestMinimum), um minimale Berechtigungsanforderungen anzugeben.

[ ]

Assemblys mit hohen Berechtigungen sind von Assemblys mit niedrigeren Berechtigungen getrennt.

[ ]

Wenn eine Assembly in einer teilweise vertrauenswürdigen Umgebung verwendet werden soll (z. B., wenn sie von einer teilweise vertrauenswürdigen Webanwendung aufgerufen wird), befindet sich privilegierter Code in einer separaten Assembly.

[ ]

Sie verwenden eine systemeigene Konfigurationsdatei zur Unterstützung der Anwendung, anstatt die Konfiguration der Datei Web.config zu ändern.

[ ]

Sie verwenden .NET Framework 2.0, 3.0 oder 3.5.

[ ]

Sie verwenden eine einzige .NET Framework-Version. Sie verwenden nicht mehrere Versionen gleichzeitig.

[ ]

Ihr Code ist 64-Bit-kompatibel.

[ ]

Die Anwendung versucht nicht direkt auf SharePoint-Datenbanken zuzugreifen. Datenspeicher in SharePoint-Datenbanken werden nur mithilfe des SharePoint-Objektmodells aktualisiert.

[ ]

Sie vermeiden die Hartcodierung von Zeichenfolgen und Beschriftungen. Sie verwenden stattdessen Ressourcen oder Sprachdateien.

[ ]

Wenn auf die SPWeb- oder SPSite-Objekte verwiesen wird, verwenden Sie eine using-Anweisung oder alternativ einen expliziten Aufruf der Dispose-Methode, um die richtige Verwendung und Bereitstellung der Speicherobjekte sicherzustellen.

[ ]

Sie verwenden bei Bedarf die Zwischenspeicherung, um unnötige Roundtrips zu reduzieren. Für Webparts machen Sie die Cacheablaufzeit (Dauer) als Webparteigenschaft verfügbar.

[ ]

Beim Verpacken Ihrer Lösung schließen Sie eine Codezugriffssicherheits-Richtlinie für die Lösung ein und schließen ggf. die Assembly über die Lösung in die Liste der sicheren Steuerelemente ein.

[ ]

Beim Protokollieren von Code verwenden Sie die Portal Log-Klasse zum Protokollieren des vereinheitlichten Protokollierungsdiensts (Unified Logging Service, ULS) von SharePoint.

[ ]

Wenn Sie mehrere Listenelemente mithilfe von Remotecode aktualisieren müssen, verwenden Sie den Webdienst zum Aktualisieren der Listenelemente. Sie verwenden SPListItem.Update() nur, wenn Sie mehr als ein Element gleichzeitig mithilfe von lokalem Code, der auf dem Objektmodell basiert, aktualisieren müssen.

[ ]

Bei Verwendung der Count-Eigenschaft eines SPListItemCollection-Objekts rufen Sie diese nur einmal auf und speichern sie dann in einer Variablen, auf die Sie beim Ausführen von Schleifen verweisen können. Sie rufen diese Eigenschaft nicht innerhalb einer Schleife auf.

[ ]

Die Lösung verwendet das AppSettings-Objekt zum Implementieren der XML-Zuordnung. (Dieses Objekt kann mithilfe des Frameworks für die Beibehaltung von Einstellungen in .NET 2.0, 3.0 oder 3.5 bereitgestellt werden.) Die Lösung vermeidet das Erstellen von benutzerdefinierten XML-Dateien und ein stark typisiertes Objekt für die XML-Zuordnung.

[ ]

Die Installation und Bereitstellung wird in den Ereignisprotokollen aufgezeichnet, um während der Installation und Deinstallation eine entsprechende operative Problembehandlung zu ermöglichen.

Herunterladen dieses Buchs

Dieses Thema wurde zum leichteren Lesen und Ausdrucken in das folgende Buch zum Herunterladen aufgenommen:

Die vollständige Liste der verfügbaren Bücher finden Sie unter Bücher zum Herunterladen für Office SharePoint Server 2007.