pdf viewer in mvc 4 : How to copy an image from a pdf in software application dll windows html azure web forms Stuermer105-part1569

5.DerWebApplicationService
44
allerdings,dasseinetechnischeEinschränkungentsteht,wennvermiedenwer-
densoll,dassfürdieBildbearbeitungsapplikationextraKonfigurationenam
Server–dieaufgrundfehlenderBerechtigungenvielleichtnichtmöglichsind
–vorgenommenwerdenmüssen.Weitersbestehteine Bindunganbestimm-
teProgrammiersprachenundanvomServerunterstützteGrafikbibliotheken,
wiez.B.GDlib
4
oderImageMagick
5
.
DasHerausforderungbeidieserVariantestelltdieEntwicklungeinerEx-
tensiondar,die mitwenigAufwandinunterschiedliche CMSzuintegrieren
ist,dajedesCMSwiederumandereAnforderungenmitsichbringt.
VarianteB –Bildbearbeitungals „Web Service“
UmeinengroßenNachteil vonVarianteA– BindunganbestimmteGrafik-
bibliotheken und notwendige Serverkonfigurationen – zuvermeiden,wurde
Variante B so konzipiert,dassdas Bildbearbeitungstool bzw.die Bildbear-
beitungsfunktionen als Web Service zurVerfügung gestelltwerden, sodass
dieBildbearbeitungaufeinemanderenServerstattfindetalsjenem,aufdem
dasCMSläuft. NurdasFrontend(HTML+ JavaScript)wirdimCMSzur
Verfügung gestellt. Hierbei soll das bereitszwei Semester lang entwickelte
BildbearbeitungstoolPixelinazumEinsatzkommen,wasdenVorteilbietet,
dass der Schwerpunkt des Projektes auf der Einbindung der bestehenden
Applikation als auf der Neuimplementierung von Bildbearbeitungsfunktio-
nenliegt,wasbeiVarianteAderFallwäre.
Die Vorteile beidiesemAnsatz liegendarin, dassdie Bildbearbeitungs-
funktionen in jeder beliebigen Sprache programmiert werden können und
somitauchjedebeliebigeGrafikbibliothekverwendetwerdenkann,daesser-
verseitig keine Bindung an Konfigurationen gibt. Des Weiteren muss nicht
dergesamte Source Code im CMS zur Verfügung gestellt werden und bei
VersionsupdatesmussdasTool nurzumTeilneuinstalliertwerden, da ein
GroßteilvomfremdenServergeladenwird.
Weiterentwicklung
Nach gründlichen Recherchenund der Implementierung beider Prototypen
fieldie schlussendliche EntscheidungfürdieVariante B,dadieseeinenweit
interessanterenundinnovativerenAnsatzalsVarianteAverfolgtunddarüber
hinausauchmehrVorteilemitsichbringt.
WährendderEntwicklung habensichinteressanteAspekteergeben,so-
dassdasBildbearbeitungstoolalskompletteApplikationmitsamtdemFron-
tend vom fremden Server(Application-Server) geladen wird und nicht nur
dieBildbearbeitungsfunktionenalsWebServicezurVerfügunggestelltwer-
den. Das bedeutet, dass Pixelina mittels JavaScript (Cross-Domain Ajax)
4
http://www.libgd.org/
5
http://www.imagemagick.org/
How to copy an image from a pdf in - copy, paste, cut PDF images in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Detailed tutorial for copying, pasting, and cutting image in PDF page using C# class code
cut image from pdf online; copy and paste images from pdf
How to copy an image from a pdf in - VB.NET PDF copy, paste image library: copy, paste, cut PDF images in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
VB.NET Tutorial for How to Cut or Copy an Image from One Page and Paste to Another
cut and paste pdf images; how to copy pictures from pdf to word
5.DerWebApplicationService
45
in einer HTML-Seite in beliebige Applikationen eingebunden werden kann
undbei jedemAufruf neugeladenwird.Die Daten (Bilder)liegen auf dem
Customer-Serverundwerdenübereinezentrale Schnittstellen-DateifürPi-
xelinazugänglich.BearbeitetwerdendieBilderaufdemApplication-Server
und erst auf Wunsch werden die bearbeiteten BilderwiederamCustomer-
Serverabgespeichert.
5.4.2 Ablauf einer Bildbearbeitung
In Abbildung 5.3 istderAblauf einer Bildbearbeitung mit Pixelina darge-
stellt. Dieserwurde soweitoptimiert,dassderCustomer-ServerkaumLeis-
tungfürdieBildbearbeitungsoperationenaufbringenmuss.
1. Der Kunde öffnet eine bestimmte HTML-Seite unter seiner Domain
z.B.http://www.myDomain.at/pixelina.html inderPixelinaperJava-
Script eingebunden ist. Das Bildbearbeitungstool wird mittels Java-
ScriptamClientinitialisiert.
2. DerKundeöffneteinBildausdemdefiniertenBilderordner.DasBild
wirdperAjaxvomCustomer-Serverangefordert.
3. DasBild wird vom Customer-Serverzum Clientgeschickt,wo eszur
WeiterverarbeitungzurVerfügunggestelltwird.
4. DieURLdesausgewähltenBildeswirdvomClientperCross-Domain
Ajax-Request(CDA)überDWRandenApplication-Servergeschickt.
5. DasBildwirdeingelesenundimBenutzerordnerabgespeichert.
6. DieausgelesenenBildinformationen(Pfad,Größe,...)werdeninForm
eines JSON-Objektesan die JavaScriptCallback-Funktion am Client
retourniertunddasaktuelleBildvomApplication-ServerwirdimBild-
containerangezeigt.
7. DerBenutzerbearbeitetseinBildundändertz.B.dieGrößedesBildes.
8. UnterderVerwendungvonCross-DomainAjax(CDA)überDWRwird
eineJava-MethodeaufdemApplication-Serveraufgerufen,diedasBild
bearbeitetundeinetemporäre Bilddateierstellt.
9. DieneuenBildinformationenwerdeninFormvonJSONandenClient
retourniert,wodasbearbeiteteBildangezeigtwird.
10. DerBenutzerspeichertdasBild am Customer-Server, welchesbisher
noch keinen Änderungen unterzogen worden ist. Es wird ein Ajax-
RequestzumCustomer-Serverabgesetzt,derdenBildpfadzumverän-
dertenBildamApplication-Serverüberträgt.
11. Am Customer-Server wird das Bild von der URL am Application-
ServereingelesenundunterdemgewünschtenPfadabgespeichert.
C# PDF Image Extract Library: Select, copy, paste PDF images in C#
How to C#: Extract Image from PDF Document. List<PDFImage> allImages = PDFImageHandler. ExtractImages(page); C#: Select An Image from PDF Page by Position.
how to copy pictures from pdf in; copy image from pdf
VB.NET PDF Image Extract Library: Select, copy, paste PDF images
VB.NET PDF - Extract Image from PDF Document in VB.NET. Support PDF VB.NET : Select An Image from PDF Page by Position. Sample for
copy image from pdf to; copy image from pdf reader
5.DerWebApplicationService
46
Customer-Server
http://www.myDomain.at
Application-Server
http://www.otherDomain.at
http://www.myDomain.at
Client (Browser)
Datenbank
Dateisystem
Applikation
+ Servlet
+ Logik
+ Templates
Bild bearbeiten
Ajax - Bild anfordern
CDA - Bild senden
Ajax - Bild senden
CDA - JSON senden
ajax.php
2
3
4
6
7
5
6
Pixelina
1
http://www.myDomain.at/pixelina.html
CDA - Bild bearbeiten
8
9
Ajax - Bild speichern
10
11
Abbildung5.3: AblaufeinerBildbearbeitungmitPixelina.
5.5 Datenübertragung
FürdieEntwicklungdesWebApplicationService-KonzeptesspieltdieÜber-
tragung der Daten vom Client zum Server eine wesentliche Rolle. Da es
beim LesenderDaten notwendig ist, die Daten von mehrerenServern zu-
sammenzuführen,erinnertdiesstarkandieStrukturvonMashups.Diever-
schiedenen Arten von Mashups werden in [23,24] deutlich hervorgehoben
und auch in Abschnitt 3.3 beschrieben. Hier wird unterschieden zwischen
Server-SideMashupsundClient-SideMashups.DerUnterschiedliegtdarin,
dassbeiServer-Side MashupsDaten vonunterschiedlichenServernamSer-
verzusammengefügtunderstdannzumClientübertragenwerden,während
bei Client-Side Mashups die Daten erst vom Client angefordert und auch
amClientmiteinemclientseitigenScriptz.B.JavaScriptzusammengeführt
werden.
DaApplikationen,dieauf demWebApplicationService-Konzeptaufbau-
en,ÄhnlichkeitenmitMashupsaufweisen,ergebensichfürdieKommunika-
tionzwischendenbeidenServernebenfallsmehrereMöglichkeiten.
Wichtigist,dassunterschiedenwird,obDatengelesenodergeschrieben
werden,dadasLesenderDatenvonzweiServernstattfindet,währenddessen
nur auf einen Server Daten geschrieben werden. Deswegen erfordern diese
beidenunterschiedlichenSzenarienauchzweiunterschiedlicheAnsätze.
C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net
C#.NET PDF Library - Copy and Paste PDF Pages in C#.NET. Easy Ability to copy selected PDF pages and paste into another PDF file. The
paste image in pdf file; how to copy picture from pdf
VB.NET PDF Page Extract Library: copy, paste, cut PDF pages in vb.
Dim page As PDFPage = doc.GetPage(3) ' Select image by the point VB.NET: Clone a PDF Page. Dim doc As PDFDocument = New PDFDocument(filepath) ' Copy the first
how to copy an image from a pdf in; copy image from pdf to pdf
5.DerWebApplicationService
47
5.5.1 Daten lesen
Gelesen werden die notwendigen Daten prinzipiell von zwei Servern. Ein
TemplatezurAnzeigederDatenvomApplication-Serverunddiezugehörigen
DatenvomCustomer-Server.
FürdieZusammenführungdieservonTemplate undDatenwurdendrei
unterschiedlicheAnsätzeentwickelt.
ClientseitigeZusammenführungder Daten
DieserAnsatzhatzumZiel,dassdieKommunikationderbeidenServer–wie
inAbbildung5.4dargestellt–ausschließlichüberdenClienterfolgtundeine
strikte Trennung von Application-Serverund Customer-Server– vergleich-
bar mitClient-Side Mashups– möglichist.DiesesKommunikationsprinzip
ist ähnlich zu dem von Pixelina, da hier ebenfalls die beiden Server nicht
miteinanderinVerbindungtreten–außerbeimEinlesenderBilderüberdie
URL.
EswerdenhierbeidieTemplatesvomApplication-Servergelesen,dieper
Cross-DomainAjaxvomClientangefordertwerden,währenddieDatenvom
Customer-Servergelesenwerden,diemittelsAjaxangefragtwerden.Erstam
Clienterfolgtdie ZusammenführungderDaten.
Das Problem bei diesem Ansatz stellt die starke Belastung desClients
dar,dadieserfürdasAufsplittenundgezielteEinfügenderDatenzuständig
ist,wasnichtzuletztauchmithoherFehleranfälligkeitverbundenseinkann.
DieKommunikationläufthierwie folgtab:
1. DerBrowsersendeteinenCross-DomainAjax-RequestmitderAnfrage
nacheinembestimmtenHTML-TemplateandenApplication-Server.
2. DerApplication-SerververarbeitetdenRequest,liestdasangeforderte
TemplateeinundersetztvorhandeneVariablenmitDatenvomClient
z.B. eine siteID fürden Aufruf der JavaScript-Funktion, welche die
DatenvomCustomer-Serverlädt.
3. DerApplication-ServerretourniertdaseingeleseneHTMLzumClient.
4. EineJavaScriptCallback-FunktionplatziertdasHTMLunterVerwen-
dungvoninnerHTMLineinendafürvorgesehenenPlatzhalter.
5. Nachdem EinfügendesHTML-CodeswirdeineJavaScriptCallback-
Funktion ausgeführt, die einen Ajax-Request an die Schnittstellen-
DateiamCustomer-Serverabsetzt.
6. EineentsprechendeFunktioninderSchnittstellen-DateiliestdieDaten
ausderDatenbankundverpacktdiese ineinJSON-Objekt.
7. DasJSON-ObjektwirdandenClientzurückgeschickt.
8. ÜbereineJavaScriptCallback-FunktionwirddasJSON-Objektinter-
pretiertunddieDatenwerdengezieltindasTemplateeingefügt.
VB.NET PDF insert image library: insert images into PDF in vb.net
VB.NET PDF - Add Image to PDF Page in VB.NET. Insert Image to PDF Page Using VB. Add necessary references: RasterEdge.Imaging.Basic.dll.
copy images from pdf to powerpoint; copy images from pdf to word
C# Create PDF from images Library to convert Jpeg, png images to
Best and professional C# image to PDF converter SDK for Visual Studio .NET. C#.NET Example: Convert One Image to PDF in Visual C# .NET Class.
copying image from pdf to word; copy pdf picture to word
5.DerWebApplicationService
48
Customer-Server
http://www.myDomain.at
Application-Server
http://www.otherDomain.at
http://www.myDomain.at
Client (Browser)
Datenbank
Dateisystem
Applikation
+ Servlet
+ Logik
+ Templates
HTML
Daten
Ajax
Cross-Domain Ajax
Ajax
Cross-Domain Ajax
ajax.php
Daten für Template anfordern
5
Daten senden (JSON)
7
Template anfordern
1
Template senden 
3
4
8
2
6
Abbildung5.4: Datenlesen–AblaufderclientseitigenZusammenführung
derDaten.
Client- undserverseitigeZusammenführungderDaten
DabeiderclientseitigenZusammenführungdiegesamteBefüllungderTem-
platesimBrowserstattfindet,welcherdadurchsehrstarkbelastetwird,wur-
de ein Ansatz entwickelt, der diese Last vom Client nimmt und auf den
Application-Serverauslagert.Dasheißt,dassdieDatenzwarvomCustomer-
ServerüberdenClientabgefragt,jedochandenApplication-Serverweiterge-
leitetunddortdirektineinTemplateeingearbeitetwerden.DieKommunika-
tionerfolgthierebenfalls–wieinAbbildung5.5dargestellt–ausschließlich
überdenClient.DerAblaufderKommunikationistnunfolgender:
1. DerBrowsersendeteinenAjax-RequestmitderAnfragenachbestimm-
tenDatensätzenandieSchnittstellen-DateiamCustomer-Server.
2. Der Customer-Server liest die Daten aus und verpackt diese in ein
JSON-Objekt.
3. DasJSON-ObjektwirdandenClientzurückgeschickt.
4. ÜberdenAufrufeinerJavaScriptCallback-Funktionwerdendieange-
fordertenDatenweiterverarbeitet.
5. Der Client sendet einen Cross-Domain Ajax-Request mit der Anfra-
ge nach einem bestimmten Template an den Application-Server und
überträgtgleichzeitigdaszuvorangefragteJSON-Objekt.
C# PDF insert image Library: insert images into PDF in C#.net, ASP
C#.NET PDF SDK - Add Image to PDF Page in C#.NET. How to Insert & Add Image, Picture or Logo on PDF Page Using C#.NET. Add Image to PDF Page Using C#.NET.
paste image into pdf; how to copy an image from a pdf to word
VB.NET PDF remove image library: remove, delete images from PDF in
Replace Text in PDF. Image: Insert Image to PDF. Image: Remove Image from PDF Page. Image: Copy, Paste, Cut Image in Page. Link: Edit URL.
how to copy pictures from a pdf to word; copy image from pdf to ppt
5.DerWebApplicationService
49
6. AmApplication-ServerwirddasangeforderteTemplateeingelesenund
diemitgeliefertenDatenaus dem JSON-Objekt werden direkt indas
Templateintegriert.
7. DerentstandeneHTML-CodewirdanschließendwiederandenBrow-
serzurückgesandt.
8. ÜberdenAufrufeinerJavaScriptCallback-FunktionwirddasTempla-
temitsamtdenDatenineinenvorgesehenenPlatzhaltereingefügt.
Customer-Server
http://www.myDomain.at
Application-Server
http://www.otherDomain.at
http://www.myDomain.at
Client (Browser)
Datenbank
Dateisystem
Applikation
+ Servlet
+ Logik
+ Templates + Daten
Daten
HTML + Daten
Ajax
Cross-Domain Ajax
Ajax
Cross-Domain Ajax
ajax.php
Daten für Template anfordern
1
Daten senden (JSON)
Template fordern + Daten senden
5
Template + Daten senden 
7
4
8
6
2
3
Abbildung5.5:Datenlesen–Ablaufderclient-undserverseitigenZusam-
menführungderDaten.
ServerseitigeZusammenführung derDaten
BeidiesemAnsatzwerdendieDaten–wieinAbbildung5.6dargestellt–vom
Customer-ServerübereinenWebServicedirektvomApplication-Serveran-
gefordert,vergleichbarmitServer-Side Mashups. Hierbeiwerden die Daten
am Application-Serverin das Template integriertund als fertiges HTML-
Konstrukt zum Client gesandt. Der Client hat nur noch die Aufgabe, die
Daten in einen vorgesehenen Platzhalter einzufügen, was die Fehleranfäl-
ligkeitstarkminimiert,da die Daten am Client nicht aufwändig perJava-
Scriptzerlegtwerdenmüssen.EinenweitereninteressantenPunktstellthier
derSicherheitsfaktordar,damandieMöglichkeithat,amCustomer-Server
nurAnfragenvomApplication-ServerentgegenzunehmenundRequestsvon
fremdenQuellenzublockieren.DerAblaufderKommunikationisthierfol-
gender:
5.DerWebApplicationService
50
1. DerBrowsersendeteinenCross-DomainAjax-RequestmitderAnfrage
nacheinembestimmtenTemplateandenApplication-Server.
2. AmApplication-ServerwirddasangeforderteTemplateeingelesen.
3. Anschließend sendet der Application-Server direkt einen Request an
die Schnittstellen-Datei am Customer-Server (Web Service) um den
gewünschtenDatensatzanzufordern.
4. AmCustomer-ServerstehtdieSchnittstellen-DateizurVerfügung,die
Anfragen vom Application-Serverzulässt. Die Datenwerdenalso aus
derDatenbankgelesenundineinJSON-Objektverpackt.
5. DasJSON-ObjektwirdandenApplication-Serverretourniert.
6. DerApplication-Server verarbeitetdie Daten und integriert diese di-
rektindasangeforderteTemplate.
7. DaseingeleseneTemplatebzw.dasfertigeHTMLwirdzurückanden
Browsergeschickt.
8. MittelseinerJavaScriptCallback-FunktionwirdimBrowserdasTem-
plate ineinenvorgesehenenPlatzhaltereingefügt.
Customer-Server
http://www.myDomain.at
Application-Server
http://www.otherDomain.at
http://www.myDomain.at
Client (Browser)
Datenbank
Dateisystem
Applikation
+ Servlet
+ Logik
+ Templates + Daten
HTML + Daten
Ajax
Cross-Domain Ajax
Cross-Domain Ajax
ajax.php
Template + Daten anfordern
1
Template + Daten senden 
7
8
2
4
6
Web Service
Daten senden
5
Web Service
Daten anfordern
3
Abbildung5.6:Datenlesen–AblaufderserverseitigenZusammenführung
derDaten.
Vor- und Nachteilederverschiedenen Ansätze
BeiderclientseitigenZusammenführungderDatensorgtdie Trennung von
SystemundDatenfüreinengroßenVorteil,dadiese„Trennung“auchoffen-
5.DerWebApplicationService
51
sichtlichvorhandenistundsoklarwird,dasskeineDatenhaltungbzw.Kopie
derDatenamApplication-Servererfolgt.BeidenanderenbeidenAnsätzen
wird dieTrennung von Datenhaltung undSystemnichtmehrso streng ge-
sehen, da hierbei beiden Ansätzen die Daten auf dem Application-Server
verarbeitetwerden.
Die höhere Belastung des Clients und die hohe Fehleranfälligkeit auf-
grund der aufwändigen Zerlegung der Daten stellen bei der clientseitigen
Zusammenführungwesentliche Nachteile dar.Auch bei derclient-undser-
verseitigenZusammenführung,beiwelcherderClientzweiMalinteragieren
muss, spieltdie Belastung einewesentliche Rolle.Hier wirdbei derserver-
seitigenZusammenführungderClientaufgrundderfertigenTemplatesstark
entlastet,waseinengroßenVorteilbringt.
Da die Vorteile der serverseitigen Zusammenführung derDaten gegen-
über den anderen beiden Möglichkeitendeutlich überwiegen und auch der
Sicherheitsfaktor–vorallembeimSchreibenderDaten–einewichtigeRolle
fürdasGesamtkonzeptspielt,wirdfürdasWebApplicationService-Konzept
diese Weise derDatenübertragungeingesetzt.
5.5.2 Daten schreiben
Beim Schreiben derDaten in die Datenbank bzw. in das Dateisystem auf
demCustomer-ServerbietensichwiederumzweiMöglichkeitenfürdieUm-
setzung.
DirekteKommunikationmit demCustomer-Server
Die direkte Kommunikation zwischen Client und Customer-Server ist der
einfachsteundschnellsteWegfürdasSchreibenderDaten.Diegewünschten
Daten werdenhierbeiclientseitig perJavaScriptin einbestimmtesFormat,
z.B. ein JSON-Objekt, gebracht und per Ajax-Request an den Customer-
Serverübertragen.DortwirddasJSON-Objektinterpretiertunddie Daten
werdeninderDatenbankabgespeichert.
Kommunikation überden Application-Server
DieKommunikationzwischenClientundCustomer-ServerüberdenApplica-
tion-Servernimmtzwarbeim Schreiben derDaten einen Umweg über den
Application-Server,bietetjedochsicherheitstechnischgeseheneinige Vortei-
le,weshalbdieserWegnichtaußerAchtgelassenwerdendarf.Diegewünsch-
tenDatenwerdenhierbeiebenfallsclientseitigperJavaScriptineinbestimm-
tes Format, z.B. ein JSON-Objekt, verpacktund per Cross-Domain Ajax-
RequestzumApplication-Serverübertragen.AmApplication-Serverbesteht
die Möglichkeit–ohne großenzusätzlichenImplementierungsaufwand– die
Daten auf Richtigkeitzuüberprüfen, zu filtern undsich so voreventuellen
Angriffenzuschützen.NachderFilterungderDatenwerdendiese perWeb
5.DerWebApplicationService
52
Service andie Schnittstelle desCustomer-Serversgeschicktunddortinder
Datenbankgespeichert.
Vor- und NachteilederbeidenAnsätze
ObwohldieKommunikationüberdenApplication-Servereinenzusätzlichen
Requestbenötigt, gibtesbeidiesemAnsatz mehrMöglichkeitendie Daten
zuüberprüfen.WürdederdirekteKommunikationswegzwischenClientund
Customer-Server gewählt werden, wäre es notwendig, auf dem Customer-
Server die Logik für die Datenüberprüfung zur Verfügung zu stellen, was
zusätzlichen Implementierungsaufwand für die Schnittstellen-Datei bedeu-
ten würde. Erfolgt die Kommunikation über den Application-Server, wird
aufdemCustomer-ServerlediglichdieSchnittstelleohneweitereImplemen-
tierungenbenötigt.
Da die Vorteile der Kommunikationüber den Application-Server über-
wiegenund Sicherheithierbei groß geschrieben wird,wird diese Variante –
wie auch für das Lesen der Daten die serverseitige Zusammenführung ver-
wendetwird–fürdasSchreibenderDateneingesetzt.
5.6 Sicherheitsaspekte
Wie bei allen Webanwendungen spielt auch beim WebApplicationService-
KonzeptdieSicherheiteinesehrwichtigeRolle.AusdiesemGrundsetztsich
dieserTeilderArbeitmitmöglichenSicherheitslückenundderenSchließung
auseinander.
5.6.1 Attack Patterns und Gegenmaßnahmen
Es gibt unterschiedliche Angriffsmuster, die oft und gerne von Angreifern
eingesetztwerdenumBenutzerdatenzustehlenodergesamteApplikationen
zumanipulieren.ImFolgendensinddiezweiwichtigstenundamhäufigsten
eingesetztenAttacken,sowieentsprechendeGegenmaßnahmenbeschrieben.
Cross-SiteScripting
Cross-SiteScripting(XSSoderCSS)istimGrundegenommennichtsanderes
alsdasEinschleusenvonschadhaftem(clientseitigem)Script-Codeinbeste-
hendeSysteme,sodassdieservondenBenutzernunbewusstausgeführtwird.
DerSchadcodewirdhiermeistüberFormularfeldereingeschleustundineiner
DatenbankamServerabgespeichert. Wird derCode z.B.in einenForums-
beitragplatziert,wirddieserbeijedemBenutzer,derdieSeitemitdement-
sprechendenBeitragaufruft,ausgeführt.DasZielvonsolchenXSS-Attacken
istmeist,Session-oderLogin-DatenvonBenutzernauszulesenunddiesean
andere Serverweiterzuleiten,Cookieszustehlen,Webseitenzuverunstalten
5.DerWebApplicationService
53
oder JavaScript-Objekte derWebsite zu manipulieren. Nähere Informatio-
nenüberXSSund dieverschiedenenArtenund Angriffsmöglichkeitensind
in[9]zufinden.
Aufgrund der SOP ist es zwar nicht mehr so einfach, gestohlene Be-
nutzerdaten auf Drittserver weiterzuleiten, es ist allerdings kein Ding der
Unmöglichkeit,da eswie in Kapitel4 beschrieben,bereitsMittelund We-
ge gibt, die SOP zu umgehen. Ein leichtes Spiel würden Angreifer haben,
wennCORS inallen Browsernimplementiertwird,da die Server nurnoch
WildcardseinstellenmüssenundsoDatenvonallenClientserhaltenwerden
können. Darum ist es wichtig, XSS gar nichterst zuzulassen und notwen-
dige Gegenmaßnahmen,vondenendiewichtigstenimFolgendenaufgelistet
werden,einzuleiten.
Validieren der Benutzereingaben. Eingabenvon Formularfeldernsol-
lenwennmöglichaufderServerseitevalidiertwerden,dabeiÜberprüfungen
viaJavaScriptInjection-Angriffestattfindenkönnen,wennbestimmteDinge
wiez.B.dasFilternvon<script>-Tagsnichtbeachtetwerden.
EscapenderBenutzereingaben. MitderValidierungalleineistesnicht
getan.BeiDaten,dieineineDatenbankgeschriebenwerden,mussEscaping
angewandt werden. Das bedeutet, dass bestimmte Sonderzeichen wie z.B.
einfacheoderdoppelteAnführungszeicheneinenBackslashvorangestelltbe-
kommen, damit diese nichtTeile einerSQL-Anfrage aufbrechen undsomit
SQL-Injections
6
erzeugenkönnen(vgl.[9]).
FilternderBenutzereingaben. DieDatenmüssenvordemAbspeichern
in der Datenbank noch einem Filter unterzogen werden, der alle nicht er-
wünschtenTagsentfernt.EsgibtFilter,die schlichtwegsämtlicheTagsent-
fernenundnurnochTextübriglassen.Problembeidieser„sicheren“Methode
istjedoch,dassHTMLoftalsEingabezugelassenwerdenmuss.
FilternvonHTML-Eingaben. ManchmalistesnotwendigvomBenut-
zer HTML-Eingaben zuzulassen. Z.B. wenn von der Applikation die Mög-
lichkeitgeboten wird, HTML-Templateszu erstellenund zu editierenoder
wennfürdieVerwaltungderSeiteninhalteeinWYSIWYG-Editor
7
verwen-
detwird.Hiergibtesunterschiedliche Tools,die solcheine Filterung über-
nehmenkönnen,wiez.B.HTMLPurifier
8
oderHTMLTidy
9
.
6
http://msdn.microsoft.com/en-us/library/ms161953.aspx
7
http://www.encyclopedia.com/doc/1O12-WYSIWYGeditor.html
8
http://htmlpurifier.org/
9
http://tidy.sourceforge.net/
Documents you may be interested
Documents you may be interested