Freitag, 14. Juli 2006

Ajax Frameworks bei Sourceforge

http://sourceforge.net/search/?words=ajax&type_of_search=soft

Ajax Frameworks

Übersicht:
http://www.ajax-info.de/uebersicht-ajax-frameworks

Donnerstag, 6. Juli 2006

Ajax Mistakes

http://alexbosworth.backpackit.com/pub/67688


Using Ajax for the sake of Ajax
Ajax ist cool. Man spielt damit herum -> Viele Ajaxapps nur Spielereien, aber nicht sinnvoll.

Breaking the back button
Back Button -> sehr gute Funktionalität von Standardwebbrowsern. Funktioniert nicht mit reinen JS Apps

Not giving immediate visual cues for clicking widgets
Visuell etwas anzeigen, falls etwas geklickt wird und dadurch Ajax Events ausgelöst werden, die im Hintergrund etwas laden.

Leaving offline people behind
Offline Zugriff für Webapplikationen

Don’t make me wait for Ajax
Ajax Applikationen mit schlechter Serveranbindung sind sehr langsam

Sending sensitive information in the clear
Die komplette asynchrone Kommunikation muss sicher-gestellt werden.

Assuming AJAX development is single platform development.
Es ist multi-platform, da es an verschiedene Browser angepasst werden muss. (IE!)

Too much code makes the browser slow
Große Javascript Mengen sind CPU-fressend

Not having a plan for those who do not enable or have JavaScript
Laut W3C haben 11% kein JavaScript

Inventing new UI conventions
macht die App schwer zu lernen -> schlecht

Changing state with links (GET requests)
Komplikationen für Robots, nicht intuitiv für User

Blinking and changing parts of the page unexpectedly
... sollte trotz asynchronen Möglichkeiten bei Hauptteilen vermieden werden.

Not using links I can pass to friends or bookmark
Links sind oft nicht mehr aussagekräftig über den aktuell angezeigten Inhalt, da dieser durch Javascript verändert sind. Daher sollte man spezielle Permalinks dafür einführen

Not cascading local changes to other parts of the page
zB: Headline ändert auch Seitentitel

Asynchronously performing batch operations
Viele kleine Änderungen bündeln zu einer Message die zum Server geht

Scrolling the page and making me lose my place
Beinträchtigung des Scrollings einer Seite durch Nachladen von Inhalten

Blocking Spidering
siehe URL Problematik. Name der Applikation immer irgendwie ermittelbar machen

Mittwoch, 5. Juli 2006

Ajax and Other "Rich" Interface Technologies

http://www.owasp.org/index.php/Ajax_and_Other_%22Rich%22_Interface_Technologies

Bei Ajax gibt es wie bei anderen Webtechnologien sichere und unsichere Applikation.
Def nach O'Reiley für Web 2.0: hochgradig p2p-dynische Applikation (?)

Ziel von Ajax Apps: Höhere Dynamik und Reichhaltigkeit von Webappl.

Ajax Sicherheitsrisiken: Genau die gleichen wie bei andern Webapps, dazu kommen einige spezifische Risiken die extra gehandhabt werden müssen.
Hohe Anzahl von asynchronen Anfragen in beide Richtugen führt zu größeren Angriffsflächen

Wichtig: Durchdachte Archtitektur, server-seitige Zugriffskontrollen, State Management, starke Validierung

Richtiges Framework für Ajax muss gewählt werden, um die Applikation nicht unsicherbar zu machen.

Controls sicher?

Aufgaben für eine sichere Ajax-Applikation
  • sichere Kommunikation
  • Authentifizierung und Session Management
  • Zugangskontrolle
  • Eingabevalidierung
  • Fehlerbehandlung und Logging
Was muss gesichert werden?
  • Alle Server
  • Die Webapplikation, die Ajax einsetzt
  • Clients (Browser)
Tibco und Atlas Framework haben nur client-basierte Kontrollen

Dienstag, 4. Juli 2006

How Ajax conquered the Web

http://searchwebservices.techtarget.com/originalContent/0,289142,sid26_gci1187849,00.html?asrc=SS_CLA_301915&psrc=CLT_26

Letztes Jahr (-> Februar 05) kam die Idee von Jesse James Garrett JavaScript und XML zu benutzen um interesantere Web-Apps bauen zu können

AJAX -> neues Buzzword für DHTML?

1997: DHTML
2002: Mozilla erweitert Browser um XHR (XHMHttpRequest)
Potential unerkannt bis Google Appl. wie Google Maps präsentiert.

2004: Ajax vs Desktopapplikation? (schnelles benutzerfreundliches Interface)
Mit Ajax immernoch technisch eingeschränkt.
MS -> Vista soll Desktop App erweitern?
Flash -> Soll Ajax Möglichkeiten werweitern?

nicht sofort

Montag, 3. Juli 2006

Ajax: A New Approach to Web Applications

http://www.adaptivepath.com/publications/essays/archives/000385.php

Einleitung
Alle coolen neuen Applikationen sind im Web.
Desktop Applikationen mit reichhatligerem Funktionsumfang und mehr Möglichkeiten diese anzusprechen.
--> Lücke schließt sich (mitunter dank Ajax)

Definition Ajax
Nicht eine Technologie, sondern mehrere verschiedene die zusammen Großes vollbringen können:
- Standardbasierte Presentation mit XHTML und CSS
- Dynamisches Anzeigen und Verändern mit dem Document Object Model (DOM)
- Datenaustausch und -manipulation mit XML und XSLT
- Asynchrone Datenabfragen mit XMLHttpRequest
- JavaScript verbindet alles miteinander

Arbeit einer klassischen Webapp:
Useraktivität triggert HTTP Anfrage an Server... bla

Was Ajax anders macht
Kein Start-Stop-Verhalten mehr dank Ajax-Engine zwischen User-Client und Server.
Statt Webpage: Laden einer Ajax-Engine (JS, Hidden Frame) zum Interface Rendern / Kommunikation mit dem Server
-- hier zwei sehr hübsche Bilder --

Requests die sonst HTTP Req brauchen würden werden über einen JS Call zur Ajax Engine bearbeitet. Veränderungen die nicht zum Server müssen kann die Engine selbst verarbeiten (Änderung von Variablen). Falls die Engine Informationen vom Server benötigt werden die Aufrufe asynchron durchgeführt, meist mit XML.

Wer benutzt Ajax?
Google! -> hohe Investitionen im Ajax-Bereich
Alle großen Produkte der letzten Zeit sind mit Ajax realisiert. (Orkut, Gmail, Betas von Google Groups, Google Suggest, und Google Maps)
Andere: Flickr, A9.com von Amazon

Funktionieren in echter Welt, nicht nur im Labor
Verschiedene Größen -> Google Maps, Google Suggest

Herausforderung für Entwickler: Nicht die Technologien (die ein alter Hut sind), sondern die Grenzen des Webs vergessen (hui).

Ajax Security (Artikel von IT-Observer)

http://www.it-observer.com/articles/1062/ajax_security

1) Vorteile von Ajax
Früher: Submit -> leerer Bildschrim -> laden -> neue Seite
Heute: Ajax (mit DHTML) kommuniziert hinter den Kulissen

2) Funktionsweise
JavaScript kommuniziert im Hintergrund mit dem Server
Backbone: JavaScripts XMLHttpRequest object, ausgelöst durch Tastendrücke, Timer; arbeitet im Hintergrund bzw asynchron
XML im Name irreführend (kommt vom Name des JS Objekts), man kann alles mögliche vom Server holen, zB auch JavaScript und on the Fly einfügen.
Best Practice: XML(?), Manipulation mit JS recht einfach.

3) Trouble with Ajax (anhand eines Reiseveranstalter-Beispiels)
  • Neuartige Technologie: Neuartige Technologie, Best Practices fehlen, dubiose Eigen-Konventionen?
  • Unkonventionelles Design: Teils Client, teils Server. Ein Entwickler für beide Seiten => 2 verschiedene Sprachen gleichzeitig programmieren; bei verschiedenen Teams: wer ist für Sicheres Coding verantwortlich?
  • Zu viele Skripte: Ohne Planung: Viele kleine Skripte = mehr zu managen, mehr Raum für Fehler, versteckt in Client-JavaS-Code werden vergessen?
  • Darfs etwas mehr sein?: Ajax verleitet dazu viel mehr einzubauen als man eigentlich braucht
  • Unsichere Kommunikation - Bei vielen Anfragen kann eine die verschlüsselt werden sollte übersehen werden
  • Serverseitige Zugriffskontrollen - Session Cookies oder andere Tokens damit Daten an den richtigen Benutzer gehen
  • Serverseitige Validierung - Ajax Controls erlauben Validierung zur Laufzeit => Gefahr da mit Proxy Anfragen, die dann wirklich abgeschickt werden, manipulierbar sind.
    "Normale" Server-Validierung ist daher Pflicht! Zusätzliche Frage, ob Ajax-Controls sicher sind, dh ob die Parameter ihrer Aufrufe angreifbar sind.
  • Clientseitige Validierung - JavaScript Code on the Fly mit eval() birg auch Risiken. Aktuell ausgeführter Code ist nicht sichtbar, falls ein Hacker den Server unterwandern kann (Serverhack/Man-in-the-Middle) können so zB Cookies/Session IDs ausgelesen werden o.ä.
4) Summary
Ajax toll, neue Möglichkeiten, aber man muss aufpassen

Größtes Problem: Komplexität der Client-side Scripte + evt höhere Anzahl server-seitiger Scripte. Scripte nicht sichtbar -> weniger intuitiv testbar, Coding-Standards zur Sicherheit müssen weiter eingehalten werden (zB server-seitige Validierung etc)

Tips
Planen und Vereinfachen der Ajax Calls, Standardformat zum Austausch das gewissen Konventionen entspricht (XML?!)

Best Practices von Seiten wie Open Web Application Security Project übernehmen (Zugriffkontrolle, Validierung)
Sensitive Daten über SSL schicken

Auch mit Ajax-Controls mit Validierugnsfunktion muss die finale Validierung am Server nach dem Submit durchgeführt werden.

Schwer lesbarer Client-side Code schützt keine Geschäftsgeheimnisse.

Tolle Ideen sollte man sich für spätere Versionen aufheben und das wichtige in der ersten Version realisieren.

Ajax Security Basics

http://www.securityfocus.com/infocus/1868/1

1) Ajax allgemeines
Asynchron -> Client-side scripting lang. + XmlHttpRequest (XHR) obj + XML

Client: meist JavaScript, wg Browserverträglichkeit
XHR: "Herz" der Technologie! Client-script sendet mit XHR Anfragen an den Server, dort Auswertung mit bekannten Frrameworks (J2EE, PHP, .NET)
XML: Datenformat (nicht in jedem Fall verwendet!), stattdessen z.B. oft JSON (JavaScript Object Notation), da leichter zu parsen und weniger Overhead

-> "Alte" Technologien "reloaded"!
Kombination ermöglicht höchste Interaktivität

-- gutes Bild im Text zeit Asynchron ablaufende Calls, teilweise von User oder automaitisiert --

2) Schüsse für Security
Alte Probleme with a twist!
Keine Best Practices vorhanden, da kann viel schief gehn.
  • Client Side Security Controls - schöne Sache, aber nur zusätzlich, servers-seitige Kontrollen trotzdem ABSOLUT notwendig, da Anfragen manipuliert werden können
  • Größere Angriffsfläche - AJAX steigert die Systemkomplexität, dadurch gibt es mehr Angriffspunkte. Viele kleine Server-Seiten für viele kleine Funktionalitäten möglich
  • Überbrücken von Service zu User - B2B - Authentifizierung, Authorisierung, Eingabevalidierung durch Middle Tear Systen?, Aufruf von Webservices durch den Client mittels JS/XML statt service proxies im Server!
  • Neue Möglichkeiten von Cross-Site-Scripting (XSS) - Gefährlichere Variante, da in nicht sichtbaren Anfragen möglich, Auswirkungen auch u.U. nicht direkt spürbar
Spezialisiertes Testen nötig, Standard-Web-Aplikationstests reichen u.U. nicht aus


3) Testen
Beginn des Penetrationtests -> "Footprining", dh Anfragen/Antworten loggen und verstehen.
Danach Manipulieren der Anfragen
-> Erschwert bei Ajax, da evt viele Anfragen im Hintergrund abgeschickt werden können, ohne dass Auswirklungen direkt sichtbar sind.
  • State - Problem, dass manche Anfragen abhängig sind vom Status eines (anderen) Objekts, also anders aussehen oder garnicht stattfinden
  • Timer-Events - Requests können periodisch durch Timer getriggert werden. Im Hintergrund? Woher weiß mans?
  • Dynamische DOM Updates - [DOM = Dynamic Object Modes] - JavaScript Sniplet zum Erweitern von Serverseiten mit dem eval() Befehl. Gefahr bei Behandlung im Client! (-> XSS!)
  • XML Fuzzing - Versteht das Test-Tool XML?
Aufgabe vom Tester ist festzustellen, ob die sichere Struktur noch vorhanden ist.
Veränderungen des Variablenstatus überprüfen.
Authorisierung überprüfen (Seiten nur indirekt aufgerufen werden auch!)

4) Ergebnis
Neue Möglichkeiten => Neue Sicherheitsrisiken
Tester müssen ihre Tools und ihre Methodik erweitern um Ajax Applikationen zu testen. Das Wissen ist im Prinzip da, aber die Tests sind komplexer.

Mittwoch, 15. März 2006

Verflochtenes Leben

Quelle: c't 2006 Heft 1

- alte Konzepte und neue Möglichkeiten
- Mensch & Mensch
- Erlebtes austauschen
- Freizeitbeschäftigung des Normalbürgers (<==>: Früher Beruf)
- kommunikativen Abstand verringern (P2P Publishing)
- Internet = globale/öffentliche/kulturelle Plattform

- Einfluss Googles, da Suchen häufigste Aktivität nach eMail ist
- Page-Rank: Link als "Währung", Zwang der Verlinkung
- Input des Nutzers strukturieren, "veredeln"
- Vorantreiben der Webentwicklung durch Anbieten von Diesten, frühzeitiges Erstellen von Beta-Applikationen (Akademische Konzepte => reale Dienste, die Geld einbrigen)
- BSP: Geo-Infosysteme (Google Maps), Ajax Technologie (existent seit 5 Jahren!)
- Anzeigen / Adsense-Schnittstelle

....

Montag, 13. März 2006

You Know You're Web 2.0 When...

http://web2.wsj2.com/you_know_youre_web_20_when.htm


You Know You're Web 2.0 When...
  • # You can easily comment on, or preferably, actually change the content that you find on a Web site.
  • You can label your information with tags and use them to find that information again.
  • Your Web page doesn't reload even once as you get a whole lotta work done.
  • You are actively aware of other users' recent activity on a site.
  • It's possible for you to easily share with others the information you're contributing on the Web site.
  • You can syndicate your information on a Web site elsewhere on the Internet through a feed like RSS or Atom.
  • You can pick and choose the pieces of a Web site that you like and then add that functionality to your own site.
  • There are easy ways to find out what content is the most popular or interesting at the moment.
  • You heard about a new Web site because a friend enthusiastically recommended it to you out of the blue.
  • There happens to be a mind boggling amount information and a lot of people on a site, yet it seems easy to find what you want and communicate with others.
  • Everything you ever added to a given Web site can be removed easily at your whim.
  • The Web site actively encourages you to share and reuse its information and its services with others. And it even provides a license to do so.

Freitag, 10. März 2006

O'Reilly hat alles

http://radar.oreilly.com/

Viele Infos zu Web 2.0 und Ajax.

Thinking in Web 2.0 - 16 ways

http://web2.wsj2.com/thinking_in_web_20_sixteen_ways.htm
  1. "Before you even begin, understand your goal simply" ... "much about the initial attraction of Web 2.0 is its simplicity, with unnecessary complexity deliberately and carefully hidden"
  2. The link is the fundamental unit of thought. - Web for a reason / everything is linkable /saving a link gets you back to what originally referenced to, lets you share it with anyone at anytime / anytime = permalink that won't go away without warning / links should be human readable
  3. Data belongs to those that create it. - theirs unless right proven for others
  4. It's about data first, experiences and functionality second. - you can't have presentation without something to present / all data locatable with an URL that is easily found
  5. Be prepared to share everything with enthusiasm. - Share everything possible (data, service) / encourage others / keep only things private that absolutely have to be / make discovery, navigation easy, obvious, and straightforward /Why: In return, you will benefit many times over from the sharing of others.
  6. The Web is the platform; make it grow. - your data becomes part of the web / take care for those who are interested in your stuff
  7. Understand and embrace the "capability gradient" - 1 billion users / keep it simple, but support expert users
  8. Everything is editable - or i.E. comment
  9. Identity on the Web is sacrosanct. - must be verified.
  10. Know thy popular standards and use them - useful of that data = inverse propotion to how well-known and accepted its standard is /use: RSS, OPML, XHTML, simple XML, JSON / avoid: SOAP, XSD, RDF, ATOM, and others. / contribute with votes
....
to be continued

Tim O'Reillys Definition...

http://radar.oreilly.com/archives/2005/10/web_20_compact_definition.html

Web 2.0 is the network as platform, spanning all connected devices; Web 2.0 applications are those that make the most of the intrinsic advantages of that platform: delivering software as a continually-updated service that gets better the more people use it, consuming and remixing data from multiple sources, including individual users, while providing their own data and services in a form that allows remixing by others, creating network effects through an "architecture of participation," and going beyond the page metaphor of Web 1.0 to deliver rich user experiences.

Web 2.0 != a check

http://ricksegal.typepad.com/pmv/2005/10/web_20_a_check.html

The modern version of a Tired vs. Wired chart is currently floating around the web. This attempt to categorize stuff as Web 1.0 vs. 2.0. is, well, interesting.

For example: Content Management is Web 1.0 while Wikis are Web 2.0. Gimmie a break. Wikis ARE content management dressed up a web service on top of a database engine that tracks content and, wait for it, changes to that content, in other words: Content management.

Termine, Termine, Termine...

Abgabe Themenvorschlag: 13. April 2006
Abgabe Diplomarbeit: 22. September 2006
Meldung der Note durch Erstbetreuer: 13. Oktober 2006

Brainstorming

  • allgemeine Einführung zu Web 2.0, Versuch einer Definition, Eingliederung von Ajax in Web 2.0 ("warum gehörts da rein?"), Definition Ajax
  • Funktionsweise Ajax ("warum ist Ajax toll?")
  • Platz für praktische Arbeit - Demoapplikation mit Ajax (Mini-Popmail?)
  • Bekannte Probleme von XML und JavaScript
  • speziellere Probleme durch Zusammenarbeit der Technologien
  • Ansätze für ein Ajax Security Audit

Was das hier alles soll...

Ich studiere angewandte Informatik an einer Berufsakademie und mache im September diesen Jahres mein Diplom. Dieser Blog dient mir als Ablage für meine Notizen, sei es für Texte die ich bearbeite, Links, oder sonstiges was mit meiner Diplomarbeit zu tun hat.
Das Thema meiner Diplomarbeit wird sich mit der Ajax Technologie mit Bezug auf Anwendungssicherheit befassen.
Eigentlich ist das alles für mich selbst - falls sonst jemand was damit anfangen kann: Enjoy ;)

User Status

Du bist nicht angemeldet.

Aktuelle Beiträge

XML-RPC
http://www.xml.com/pub/a/2 001/07/18/excerpt/xml-rpc. html
intrance - 7. Sep, 16:50
PHPXMLRPC Schwachstelle
http://www.hardened-php.ne t/advisory_152005.67.html http://www.hardened-php.ne t/advisory_142005.66.html http://www.heise.de/secur ity/news/meldung/62827 Bugfix: http://blog.s9y.or g/archives/36-CRITICAL-BUG FIX-RELEASE-Serendipity-0. 8.2.html
intrance - 7. Sep, 16:40
Windows Vista: Web/Desktop...
http://heftarchiv-cw.compu terwoche.de/index.cfm?pk=1 215634&pid=408
intrance - 1. Sep, 13:26
Ajax Alternative: LiveConnect
http://aktuell.de.selfhtml .org/artikel/programmierte chnik/liveconnect/index.ht m
intrance - 1. Sep, 10:32
Yahoo Mail Wurm
http://www.zdnetasia.com/n ews/security/0,39044215,39 367249,00.htm
intrance - 24. Aug, 14:26

Links

Suche

 

Status

Online seit 6643 Tagen
Zuletzt aktualisiert: 7. Sep, 16:50

Credits


About
Ajax
Ajax Frameworks
Ajax-Security
Termine
Themenschwerpunkte
Web 2.0
Profil
Abmelden
Weblog abonnieren