Communardo Software GmbH, Kleiststraße 10 a, D-01129 Dresden
+49 (0) 351/850 33-0

SharePoint 2010 – XSS Filter: Was hat sich getan?

Jetzt ist schon fast ein halbes Jahr vergangen, als ich mich das letzte Mal mit dem Cross Site Scripting Filter (XSS) von Sharepoint 2007 befasst habe. Dieser stellt einen wesentlichen Bestandteil von Sharepoint dar und bereitete mir damals schon sehr viele Kopfschmerzen. Prinzipiell besteht die Aufgabe des XSS Filters darin, schädlichen Code oder Skripte aus dynamisch generierten HTML Seiten zu entfernen. Dass der Filter manchmal etwas willkürlich arbeitete hatte ich damals in meinen Blogbeitrag bereits gezeigt.

Was bisher geschah: Sharepoint und der eigensinnige XSS – Filter (Bericht)

Grund genug, sich einmal die Unterschiede zwischen Sharepoint 2007 und Sharepoint 2010 anzuschauen.

Um die Unterschiede zu verdeutlichen, habe ich ein HTML Quelldokument, jeweils mit einem Sharepoint 2007 und mit einem Sharepoint 2010 Server programmatisch importiert.

Folgender Programmcode kam dabei zum Einsatz.

class Program
    {
        static void Main(string[] args)
        {
            using (SPSite site = new SPSite("http://....."))
            {
                using (SPWeb web = site.OpenWeb())
                {
                    PublishingWeb pubWeb = PublishingWeb.GetPublishingWeb(web);
                    string pageFileName = "Test";

                    PageLayout[] pageLayouts = pubWeb.GetAvailablePageLayouts();
                    PageLayout currPageLayout =  pageLayouts[4];

                    PublishingPageCollection pages = pubWeb.GetPublishingPages();
                    PublishingPage currentPage = pages.Add(string.Concat(pageFileName,".aspx"),currPageLayout);

                    string htmlContent = GetFileContent();

                    currentPage.ListItem[FieldId.PublishingPageContent] = htmlContent;
                    currentPage.ListItem.Update();
                    currentPage.Update();
                    currentPage.CheckIn("Checked in by me");
                }
            }
        }

Die Ergebnisse des Tests zeigt die folgende Tabelle.

Sharepoint 2010 vs. 2007
Sharepoint 2010 vs. 2007

Positiv fällt auf, dass Sharepoint 2010 endlich die Anführungszeichen an Attributen unangetastet lässt. Die 2007 er Version löschte derartige Zeichen kompromisslos weg. Kommentare akzeptiert Sharepoint 2010 immer noch nicht als HTML Elemente – sie werden ebenfalls gelöscht. <li> Elemente dürfen keine Bilder als Listen Icons besitzen. Möchte man sein eigenes Icon zu einer Liste hinzufügen sollte auf eine externe CSS Klasse zurück gegriffen werden (Dies ist in jedem Falle zu empfehlen). Die Eigenschaften „inherit“ sowie „none“ hingegen werden unterstützt.

Script Tags werden völlig korrekt entfernt. Ebenso Iframe Elemente. Diese sind nicht erwünscht.

Weiterhin positiv aufgefallen ist, dass Elemente des Typs <input/> endlich korrekt geschlossen werden. Das Attribut „Name“ wird leider gelöscht. Warum kann ich mir nicht erklären, es scheint aber so, als würden alle Attribute mit der Bezeichnung „name“ gelöscht.

Als letzte Besonderheit fällt auf, dass Sharepoint nun konsequent alle absoluten Urls in relative überführt. In Sharepoint 2007 blieben absolute Urls unangetastet. Relative Urls, welche keinen Bezug zu dem aktuellen Sharepoint Server besitzen, wie etwa <a href=”../../beispiel.htm”>, werden weiterhin gelöscht.

Fazit: Es scheint als hätte sich das Sharepoint Entwicklungsteam einige Gedanken über XHTML & Co gemacht. So fallen die geschlossen Tags sowie die Anführungszeichen positiv auf. Einige Baustellen bleiben weiterhin offen.

RT @LeMondefr_Sport: Coupe de France : Quevilly fait chuter Rennes http://tinyurl.com/yzad6fq
This comment was originally posted on Twitter

Frisch im #Communardo #Techblog: #SharePoint #2010 – #XSS Filter: Was hat sich getan? http://bit.ly/bwTV4x
This comment was originally posted on Twitter

Frisch im #Communardo #Techblog: #SharePoint #2010 – #XSS Filter: Was hat sich getan? http://bit.ly/bwTV4x
This comment was originally posted on Twitter

#SharePoint 2010 – XSS Filter: Was hat sich getan? http://ow.ly/18Y96 #fb
This comment was originally posted on Twitter

Kommentar hinterlassen


Pin It on Pinterest