Startseite > Techblog > Microsoft Sharepoint > SharePoint 2010 - XSS Filter: Was hat sich getan?
thu

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.

Kommentar Feed Trackback URL
4 Antworten zu:
“SharePoint 2010 – XSS Filter: Was hat sich getan?”
  1. aseantic sagt:

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

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

  3. TorstenHu sagt:

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

  4. remimorel sagt:

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

Hinterlassen Sie einen Kommentar

Tag Cloud

Unsere Themen

Kommentare

  • Christian Heindel: Hallo Volti, die Option “Verbindung mit ‘Dokumentbibliothek̵ 7; herstellen”...
  • volti: Hi, ich hab das beschriebene Probleme mit Outlook 2010, dort finde ich die Option Aktionen >...
  • Michael Wittwer: Hallo Guter Beitrag, bin seit kurzem auch mit Balsamiq am arbeiten und die Effizienz ist einfach...
  • Frank: Danke, tut und ist im Vergleich zur Atlassian Lösung abwärtskompatibel bis Confluence 2.10.
  • Ghost@: Danke für die schnelle Antwort Martin! Das ist natürlich ärgerlich, dass der Datentyp nicht unterstützt ist....

Twitter