Archiv ‘Web’

Dienstag, 11. September 2007

Mit wget ganze Sites abräumen

wget -r -nd -np -erobots=off "http://server.tld/"
  • -r recursive (= folge und Downloade alle verlinkten Dokumente wie HTML-Dateien und Bilder)
  • -nd nodirectories (= lege Downloads nicht in Unterordner ab)
  • -np noproblem … eh … noparent (= folge keinen Links, die eine Ordner-Ebene höher liegen)
  • -erobots=off evaluate robots.txt (= beachte robots.txt)

Im Netz habe ich auch noch diese Version gefunden:

wget -m -k -K -E "http://server.tld/"

Hat ebenso gut geklappt.

Labels: Linux, Web

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 9. September 2007

Hostpoint sucks!

Wenn Fredy drüben bei blogg.ch Prognosen über den Hosting-Markt Schweiz macht (ich stimme ihm voll und ganz bei), dann könnte ich doch auch wieder einmal etwas über die unangefochtene Nummer 1, Hostpoint, berichten.

Beginnen wir mit statistischem Zahlenmaterial:

20 queries. 13.484 seconds.

Woher stammen diese Angaben zu Datenbank-Abfragen? Am Freitag habe ich für eine Bekannte das Shared Hosting-Paket bei Hostpoint geordert und darauf umgehend WordPress 2.2 installiert. Momentan läuft das Blog mit dem Standard-Theme und beinhaltet einen äusserst kurzen Artikel (Titel & eine Zeile Text) sowie vier statische Seiten.

Lasst es mich klipp und klar sagen: Ladegeschwindigkeiten in der Grössenordnung sind inakzeptabel, insbesondere, wenn es sich um die Nummer 1 auf dem schweizerischen Markt handelt!

Ich scheine nicht der einzige zu sein, der solche Schwächen ertragen muss:

Ich habe mich in letzter Zeit immer mit einer sich langsam aufbauenden Seite & Blog herumgeschlagen, wusste nicht, woher das Problem kam. Vermutlich einfach, weil ich eine grosse Menge Daten , wie auch Film und Bildmaterial auf dem Server habe. […]

Quelle: :::Hostpoint – Performance::: (PS: Was sollen die blöden Pünktchen im Titel?!)

Aber klar doch … ich vermute eher, dass Hostpoint das von den ISPs bekannte „Overbooking“ auch auf seinen Servern anwendet. Dies wird meiner Meinung nach verschärft durch den Web 2.0-Boom (die SonntagsZeitung von heute enthält übrigens einen Zerriss dieses Unwortes) mit all seinen Applikationen. WordPress, Gallery etc. – allesamt Web-Applikationen auf Basis von PHP/MySQL – erfordern ein vielfaches an Performance. Heute, 2007, liefert ein Hoster halt kaum mehr statische Web-Sites aus. Inwiefern auch mod_rewrite seinen Anteil an der Performance-Schwäche hat, kann ich zu wenig beurteilen.

Tags:
Labels: Web

Keine Kommentare | neuen Kommentar verfassen

Samstag, 8. September 2007

Tabellenlayout geht in Rente


Kiesen.ch new – Web 2.0
Originally uploaded by emeidi

Kiesen old – Web 1.0
Originally uploaded by emeidi

Da ich die letzten grossen Probleme der Umstellung mittlerweile gelöst habe, kann ich mich nun endlich der technischen Aufarbeitung meiner Arbeit zuwenden.

In den letzten Wochen habe ich die Web-Site der Gemeinde Kiesen einer Frischzellenkur unterzogen. Eine Auffrischung und Anpassung war dringend nötig – die Web-Site hat schon 5 Jahre auf dem Buckel. Ein Alter, das im schnellebigen Web-Bereich eindeutig dem Pensionsalter entspricht.

HTML

Zuerst wurde der HTML-Code des Inhalts tauglich für das Jahr 2007 gemacht. Dabei konnte ich natürlich auf die in den letzten fünf Jahren angesammelte Erfahrung zurückgreifen: Mittlerweile habe ich Tags wie h1-3 und p lieben gelernt. Im 2001 war ich durch eine kurze Anstellung bei nothing etwas verblendet geworden. Anstelle dass ich Überschriften mit dem von W3C vorgesehenen Titel-Tag (h1-6) versah, gab es bei mir so schöne (und sinnlose) Tags wie …

<span class="contentTextTitleFirstLevel">

PHP

Natürlich habe ich im selben Anlauf auch den PHP-Code angepasst – neben einigen problematischen Unterlassungen (XSS lässt grüssen) habe ich auch hier unnötigen Ballast abgeworfen und den Code lesbarer gemacht.

Layout

Der letzte und grösste Brocken war nun aber die Umwandlung eines tabellenbasierten Layouts (perfektioniert bei nothing – damals wohl noch gerade auf der Höhe der Zeit) in HTML/CSS2. Nach hunderten bis tausenden von Reloads (Apfel-R werden wohl auf meiner Tastatur als erstes kaputt gehen) schaut die Site nun wie gewünscht aus. Unter Safari und Firefox mehr oder weniger perfekt – unter Internet Explorer gibt es noch einige kleine Schnitzer, die ich zu beheben versuchen werde.

In Gedanken bin ich bei euch, lieber Bill Gates und liebe Frickler-Truppe des Internet Explorer-Teams. Dass man in Redmond auch 2007 die Sache mit offenen Standards nicht begriffen hat, zeigt wieder einmal die klassische Abstimmung um „Open“XML. Wer mehr über die Besonderheiten des Internet Explorers lesen will, ist bei IE und CSS eindeutig am richtigen Ort.

Tag und Nacht

Oben rechts habe mit dem faszinierenden Tool Websites as Graphs zwei Analysen des Code-Struktur.

Erste Auffälligkeit: Ich komme mit deutlich weniger HTML-Tags aus (jeder Kreis entspricht einem Tag). Dies hängt ganz klar mit dem Wechsel auf CSS zusammen: Einerseits sind in das Stylesheet die Positionierung ausgelagert, andererseits die Formatierung (Farbe, Schriften, Ränder, etc.).

Zweite Auffälligkeit: Tabellen gehören der Vergangenheit an. Jedenfalls dann, wenn sie zur Erstellung eines Layouts missbraucht werden. Auf der neuen Site werden Tabelle nur noch dazu genutzt, tabellarische Daten aufzubereiten.

  • blue: for links (the A tag)
  • red: for tables (TABLE, TR and TD tags)
  • green: for the DIV tag
  • violet: for images (the IMG tag)
  • yellow: for forms (FORM, INPUT, TEXTAREA, SELECT and OPTION tags)
  • orange: for linebreaks and blockquotes (BR, P, and BLOCKQUOTE tags)
  • black: the HTML tag, the root node
  • gray: all other tags

W3C ist pingelig und nervt

Als ich die frische Titelseite dem W3C HTML Validator zur Begutachtung vorlegte, kam ich natürlich – wie immer – nicht ohne Fehlermeldungen durch …

Vorhang auf! Halt …

Wohl im Laufe der nächsten Woche – sobald alle ausstehenden Tests durchgeführt werden konnten – werde ich die neue Version produktiv schalten.

Tags: ,
Labels: Web

Keine Kommentare | neuen Kommentar verfassen

Samstag, 8. September 2007

doctype strict und die vertical gap

Heute habe ich mir an einem CSS-Layout die Zähne ausgebissen:

Nachdem ich den doctype des HTML-Dokuments von transitional nach strict geschaltet habe, um das nervige Box-Model des Internet Explorers auszutricksen (Tabellen mit width="100%" in einem div sind in Firefox, Safari und Opera so breit wie gewünscht, nur der Internet Explorer zerschiesst das ganze Layout), gab es einen vertikalen Abstand von ca. 4 Pixeln zwischen einzelnen divs wie #header und #content.

Nach stundenlangem Pröbeln und mehreren erfolglosen Google-Suchen zum Thema fand ich endlich den massgeblichen Hinweis:

This time we set the vertical-align property of the object element to bottom. This aligns the bottom of the object with the bottom of the line box, eliminating the small gap we saw earlier.

Quelle: That mysterious gap under images and embedded objects

Ehrenwort? Wirklich? JA! Nachdem ich im Stylesheet

#header img {vertical-align:bottom;}

postuliert hatte, verschwand die nervige Spalte zwischen der Kopfzeile und dem Inhalt der Web-Site. Herueka!

Tags: ,
Labels: Web

Keine Kommentare | neuen Kommentar verfassen

Mittwoch, 5. September 2007

Zugangsdaten für registrierungspflichtige Web-Sites

Wer wie ich gerade einem Bekannten Zugang zu Partyguide-Profilen verschaffen muss, ohne dass er sich in einem langwierigen und pingeligen Prozess registriert (just kidding), sei folgende Web-Site empfohlen:

BugMeNot – Partyguide

Tags: ,
Labels: Web

Keine Kommentare | neuen Kommentar verfassen

Samstag, 1. September 2007

Parallelen zum dritten Partyguide-Hack

Underscoring a major susceptibility threatening thousands of high-profile computer users across the world, a Swedish security consultant has published login credentials belonging to some 100 embassies.

Quelle: Mystery SNAFU exposes email logins for 100 foreign embassies (and counting)

Beim dritten Partyguide-Hack veröffentlichte ich 13’000 Passwörter von Benutzerkonten der Online-Community Partyguide. Zum Zeitpunkt der Veröffentlichung des Blog-Artikels (Samstag, 9. Juni 2006) waren die Passwörter der komprimittierten Accounts aber bereits von den Verantwortlichen zurückgesetzt worden.

„It will only take 10 minutes and every script kiddie is going to be using the exact same method,“ he told The Reg. „I’m probably not the first one grabbing these passwords, but I’m absolutely the first one publishing them.“

Die Sicherheitslücke entdeckte ich während der Programmierung einer Suchfunktion für Partyguide-Benutzer (was bringt eine Suchfunktion, wenn man nicht auch gleich das Bild der gefundenen Benutzern präsentiert erhält). Nachdem ich beim Zugriff auf das AJAX-Such-Script auf Grund falsch formulierter GET-Parameter SQL-Errors zu Gesicht bekam, versuchte ich mich einer SQL-Injection. Leider führte dies zu keinem Erfolg. Umso erstaunter war ich, als ich der Suchabfrage einfach ein Parameter user_search.php?bla=bla...&password=123456 beifügte – und als Resultat alle Benutzer präsentiert erhielt, die dieses Passwort gesetzt hatten. Diese Lücke war selbst für Script-Kiddies schon fast zu einfach …

Ob vor mir bereits jemand auf diese Lücke aufmerksam geworden ist und diese ausgenutzt hat, weiss ich nicht. Die Entwickler hinter Partyguide wohl auch nicht. Schliesslich wurden sie auf den Hack nur aufmerksam, weil ich während sieben Tagen zehntausende von Anfragen auf das Suchscript losfeuerte. Die Sicherheitslücke wurde nach der Entdeckung durch die Partyguide-Entwickler innert Stunden gefixt. Ich war der erste, der die Lücke öffentlich machte (Partyguide hat bis heute zu keiner der von mir veröffentlichten Sicherheitslücken und Datenlecks weder öffentlich Stellung genommen noch seine Benutzer informiert).

Egerstad’s list offers a rare glimpse into the password robustness, or lack thereof, of various countries. At the top of the list was Uzbekistan, where a typical password looks something like „s1e7u0l7c.“ Surprisingly, the ultra-secret Iran was near the bottom of the list; passwords for its various embassies tended to be the city or country in which the embassy resides. The Hong Kong Liberal Party used „12345678“ while one for an Indian embassy was simply „1234.“

Auch ich liess es mir im Nachgang zur Veröffentlichung der Lücke nicht nehmen, die Liste der Zugangsdaten nach häufigen Passwörtern zu durchforsten.

Egerstad’s decision to publish the account details online is sure to reignite the frequent debate about whether such full disclosure is irresponsible because it simply allows a broader base of people to misuse the information. He says he’s well versed in the merits of responsible disclosure but decided that posting the login details was the only way to get the attention this problem deserves.

„I don’t have time calling all over the world to tell them something they won’t understand or listen to,“ Egerstad said. „I’m probably going to get charged for helping to commit a crime. I don’t really care.“

Eine ähnliche Diskussion hat sich auch bei der Veröffentlichung meiner Erkenntnisse entfacht. Und auch ich forderte Partyguide auf, ein Gericht über die Illegalität meiner Handlungen entscheiden zu lassen. Nun, Letzteres bahnt sich mittlerweile an.

Nachtrag: „Millionenraub“ auch bei Monster.com

[…] As is the case with many companies that maintain large databases of information, Monster is from time to time subject to attempts to illegally extract information from its database.

As you may be aware, the Monster resume database was recently the target of malicious activity that involved the illegal downloading of information such as names, addresses, phone numbers, and email addresses for some of our job seekers with resumes posted on Monster sites.

The Company has determined that this incident is not the first time Monster’s database has been the target of criminal activity. […] While no company can completely prevent unauthorized access to data, […]

Quelle: Security Notice

Tags: ,
Labels: Web

Keine Kommentare | neuen Kommentar verfassen

Mittwoch, 29. August 2007

Danke Hostpoint! (oder: MySQL Suchen-und-Ersetzen)

Dank dem Wechsel von PHP4 auf PHP5 bei meinem für Kunden bevorzugten Hoster musste ich bei einigen Web-Sites folgende Änderungen vornehmen:

UPDATE `smt_content`
SET source_de = REPLACE( source_de,  'PHP_SELF',  'ORIG_SCRIPT_NAME' )

Das Problem scheint daher zu rühren, dass PHP5 als CGI ausgeführt wird und einige Werte von $_SERVER nicht oder falsch zu setzen scheint. Mit ORIG_SCRIPT_NAME erhalte ich auf jeden Fall wieder den vom Web-Server ausgesehenen WWW-Pfad zum entsprechenden Script.

ACHTUNG

Natürlich erst, nachdem ich einen Dump der entsprechenden Tabelle gezogen hatte (ein Typo, und flutsch sind alle Seiteninhalte nach /dev/null unterwegs).

Nachtrag

Im Oktober 2007 wurde ein weiterer Wechsel nötig. Neu heisst die gesuchte Variable SCRIPT_NAME:

UPDATE `smt_content` SET source_de = REPLACE( source_de,  'PHP_SELF',  'SCRIPT_NAME' )

Tags: ,
Labels: Web

Keine Kommentare | neuen Kommentar verfassen

Montag, 27. August 2007

Inkonsequenter Proxy der Bundesverwaltung


Proxy Access Denied
Originally uploaded by emeidi

Instant Messenger wie MSN, ICQ, Jabber & Co. sind im LAN der Bundesverwaltung nicht funktionsfähig (dem Vernehmen nach wird nicht nur der entsprechende Kommunikationsport geblockt, sondern auch die Login-Server selbst).

Ein Glück, dass mit dem Boom der Web 2.0-Anwendungen („Applikation läuft mit Einsatz von HTML, CSS und massiv viel JavaScript (AJAX) im Browser“) auch unzählige Dienste aus dem Boden schossen, die das Chatten über den Web-Browser erlaubten – das öffnen von aus- und eingehende Ports auf der Firewall war nicht mehr nötig, da der gesamte Kommunikationsverkehr über Port 80 (HTTP) abgewickelt wurde.

Me-who?

Der (meiner Meinung nach) wohl bekannteste Dienst dieser Art ist Meebo, der es seinen Anwendern erlaubt, sich mit allen gängigen IM-Clients zu unterhalten. Ein aufwändige (und oftmals auf Grund von Berechtigungsproblemen nicht machbare) Installation der Software auf dem lokalen Computer entfällt bei der Nutzung dieses Dienstes.

Nicht in der Bundesverwaltung

Die Bundesverwaltung sperrt aber den Zugriff auf diesen Dienst, wie ein von anonymer Seite übermittelter Screenshot zeigt. Da hat die Gedankenpolizei wieder zugeschlagen. Begründung:

Die von Ihnen aufgerufene URL wurde gespeert, weil der Gebrauch dieser URL mit dem hohen Datenvolumen verbunden den Internetdienst gefährdet und aufgrund der URL von dienstlichen Inhalten nicht ausgegangen werden kann oder weil die URL aus sicherheitstechnischen Gründen gesperrt werden musste.

Inkonsequent

Schön und recht – doch wieso ist es von innerhalb der Bundesverwaltung ohne Probleme möglich, auf folgende Teenager-Communities zuzugreifen?

Im Gegensatz zu Meebo generieren solche Web-Sites wirklich hohe Datenvolumina (Bilder wiegen ein vielfaches von Text-Chats) und bieten garantiert keine dienstlichen Inhalte an. Die Folge dieser laschen Politik: In der Bundesverwaltung soll es unzählige Büro-Lehrlinge geben, die von morgen bis abends nichts anderes machen, als sich auf solchen Communities herumzutreiben.

Und keine Angst: Wer nun gerade denkt, dass dies nur in der Verwaltung in Bundesbern passiert, täuscht sich. Als ich vor einigen Jahren (2001?) per Zufall auf die Analog-Statistiken von Tilllate stiess, führten Proxy-Server von Credit Suisse, Winterthur, UBS etc. die Rangliste an (man verzeihe mir, wenn ich die Reihenfolge vertausche oder einen anderen grossen Player nicht erwähne).

Mau locker blibe!

Deshalb, lieber fwadmin@bit.admin.ch, entweder Mal locker bleiben und Meebo freischalten, oder aber eine konsequente Linie fahren und all die Spass-Sites sperren. Soll mir keiner von euch kommen, dass ihr die Server-Logs noch nie analysiert habt … Ich bin sicher, dass in den Top 10 garantiert keine Web-Sites auftauchen, die „dienstliche Inhalte“ liefern.

Tags:
Labels: Web

Keine Kommentare | neuen Kommentar verfassen

Montag, 27. August 2007

eBay mit RSS-Feeds beobachten

Zu Hause habe ich immer noch eine defekte Fujifilm Finepix F30 herumliegen, die dringend nach einem LCD-Ersatz schreit. Motiviert durch den Kommentar eines Leidensgenossen habe ich mich nun entschieden, auf eBay nach einer ebenfalls defekten Kamera Ausschau zu halten.

Wie schön, dass nun auch bei eBay RSS-Feeds Einzug gehalten haben – wie könnte diese Technologie besser eingesetzt werden, als damit automatisch über neu eingestellte Auktionsware informiert zu werden?

Natürlich eBay-typisch nicht etwa mit für 2007 zu erwartenden wunderschönen REST-URLS (bspw. http://rss.ebay.de/search/finepix+f30), sondern mit eklig-kryptischen unzählige Zeichen umfassenden GET-Strings … Wäre ja zu viel erwartet, wenn eBay alles gleich beim ersten Mal richtig gebacken kriegte.

Labels: Web

Keine Kommentare | neuen Kommentar verfassen

Samstag, 11. August 2007

Spam erfindet Typographie neu

Folgendes Mail ist gerade bei mir eingetroffen:

<H>[u](g)<e> <N>{e}{w}[s] To Impa+ct <C>{Y}(T)[V]

Ch`ina YouT.V <C><o>{r}{p}(.)

Symbol_: (C){Y}(T)<V>

We {h}<a><v>{e} alrea^dy [s]<e><e><n> CYT^V’s m,arket i`mpact b-efore cli-mbin_g to {o}(v)[e]<r> $2.+00 {w}<i>{t}<h> [n](e){w}(s)(.) Pres`s Rele,ase: C-hina You.TV’s Cn_Boo (W)(e){b} (S)[i]{t}(e) Rank^s <N><o><.>[1] on Mic+r-osoft {L}{i}{v}(e) Sear_ch E.ngine CnBo*o Traf+fic Incr.#eases [4]{9}(%) [O](v)(e){r} (T)[w]{o} M,onths

{R}(e){a}(d) (t)(h)(e) news^, t.hink ab.out <t>(h)(e) impac_t, and

<j>{u}(m){p} on {t}<h>(i)(s) firs^t t#hing Tomorr*_ow mor.nin_g! $0-.42 is a {g}<i>(f){t} at {t}[h]<i>(s) price….__.

Do (y)<o>[u]<r> homew^.ork [a](n)(d) watc-h [t][h][i][s] t-rade Monda^y mornin`g.

Warum das?

Spammer werden immer kreativer, wenn es darum geht, textbasierte Spam-Filter zu überwinden. Entweder verunstaltet man den Text wie in diesem Fall bis zur Unkenntlichkeit – oder aber weicht auf Bilder- oder PDF-Spam aus, der aus meiner Sicht deutlich effektiver sein sollte.

Da bleibt zum Schluss nur noch eine Frage:

Wer liest das?

Ausser mir wohl hoffentlich niemand. Ob die Aktie dank diesem Stock Spam wirklich abhebt, weil die angeschriebenen von dem todsicheren Tipp Reinfall profitieren wollen, ist höchst fraglich. Stock Spam macht – wenn überhaupt – nur einen reich: Den Absender, der sich vor dem Versand mit genügend Junk-Aktien eingedeckt hat. Mehr dazu unter Stock Spam FAQ.

Tags:
Labels: Web

Keine Kommentare | neuen Kommentar verfassen