<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog :: deam.org &#187; firefox</title>
	<atom:link href="http://blog.deam.org/tag/firefox/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.deam.org</link>
	<description>hier schreibt Klaus M. Brantl</description>
	<lastBuildDate>Wed, 01 Sep 2010 06:27:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>CAPTCHA, Copy protection, &#8230;: Ein kleiner Testlauf mit Browser und OCR</title>
		<link>http://blog.deam.org/2009/08/20/captcha-copy-protection-ein-kleiner-testlauf-mit-browser-und-ocr/</link>
		<comments>http://blog.deam.org/2009/08/20/captcha-copy-protection-ein-kleiner-testlauf-mit-browser-und-ocr/#comments</comments>
		<pubDate>Thu, 20 Aug 2009 19:35:37 +0000</pubDate>
		<dc:creator>Klaus M. Brantl</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[diverses]]></category>
		<category><![CDATA[CAPTCHA]]></category>
		<category><![CDATA[Copy protection]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[Gedankenspiel]]></category>
		<category><![CDATA[OCR]]></category>
		<category><![CDATA[Test]]></category>

		<guid isPermaLink="false">http://blog.deam.org/?p=129</guid>
		<description><![CDATA[&#8220;Old News&#8221; möchte man sagen, wenn folgende Aussgage kommt: Alles was ein Mensch lesen kann, kann auch (irgendwann) eine Maschine lesen. Durch ein aktuelles Projekt angetrieben hab ich mir ein paar Dinge dann doch näher angesehen. Auch wenn ich keine fertige Lösung präsentiere, so sollte nachfolgendes ein wenig zu Denken geben. Ich beschränke mich dabei [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;Old News&#8221; möchte man sagen, wenn folgende Aussgage kommt:</p>
<blockquote><p>Alles was ein Mensch lesen kann, kann auch (irgendwann) eine Maschine lesen.</p></blockquote>
<p>Durch ein aktuelles Projekt angetrieben hab ich mir ein paar Dinge dann doch näher angesehen. Auch wenn ich keine fertige Lösung präsentiere, so sollte nachfolgendes ein wenig zu Denken geben. Ich beschränke mich dabei &#8220;nur&#8221; auf <a href="http://en.wikipedia.org/wiki/CAPTCHA" target="_blank">CAPTCHA</a>, da dies durchaus weit verbreitet ist um sich vor Spam in verschiedenster Form zur Wehr zu setzen. Spam ist aber nur eine Seite. Die andere ist der &#8220;Schutz&#8221; privater Daten durch einen CAPTCHA-Mechanismus; sei es bei einer Registrierung zu einer Community, bestimmter Interaktionen (in einer Community) oder die Abfrage z.B. von WHOIS-Daten.</p>
<p>Das ich eine Grafik durch die Mitarbeit von Menschen entschlüsseln kann (in irgendeiner massenfähigen Form), ist zwar oft genug vorgekommen, aber eben nicht ganz so &#8220;wirtschaftlich&#8221; &#8211; naja, der Köder muss nur <a href="http://www.yigg.de/toolbar/computer-und-technik/sex-fotos-als-lohn-fuer-captcha-entschluesselung-branchennews-searchsecurity-de" target="_blank">gut genug</a> sein. Ich ziele hier auf den rein maschinellen Lösungsweg.</p>
<p><strong>Mein &#8220;Versuchsaufbau&#8221; ist relativ einfach:</strong></p>
<ol>
<li>Browser: Firefox 3.5</li>
<li>OCR: Adobe Acrobat Pro 9</li>
<li>Screenshotfunktion von MacOSX</li>
</ol>
<p>Es geht mir nicht nur darum das CAPTCHA zu lösen, es also maschinenlesbar zu machen, sondern einen Mechanismus anzuwenden, der eine (ganze) Seite maschinenlesbar machen kann. Der Weg dazu ist also relativ einfach:</p>
<ol>
<li>Seite aufrufen</li>
<li>Screenshot machen</li>
<li>Datei in Acrobat öffnen und &#8220;OCR Text Recognition&#8221; auswählen</li>
<li>Prüfung ob die Grafik als kopierbarer Text vorhanden ist</li>
</ol>
<p><strong>Beispiele</strong></p>
<p>Das ganze Gedankenspielchen ist natürlich relativ langweilig&#8230; hier also ein paar Beispiele:</p>
<ol>
<li>ein beispielhafter Whois-Anbieter:<br />
<img class="alignnone size-full wp-image-137" title="whois" src="http://blog.deam.org/wp-content/uploads/2009/08/whois.png" alt="whois" width="124" height="46" /><br />
Das Ergebnis sehr ernüchternd: Funktioniert so leicht, das man sich im Anschluss die Frage stellt warum überhaupt eine Grafik verwendet wurde.</li>
<li>ein beispielhafter Community-Anbieter:<br />
<img class="alignnone size-full wp-image-136" title="community" src="http://blog.deam.org/wp-content/uploads/2009/08/community.png" alt="community" width="250" height="100" /><br />
Das Ergebnis mit einigen Leerzeichen: <strong>CNF W 7 M KG</strong> &#8211; auch bei weiteren Versuchen wurde hier problemlos erkannt</li>
<li>dann ein positives Beispiel von http://recaptcha.net/ &#8211; wird ja inzwischen wirklich sehr weit verbreitet eingesetzt:<br />
<img class="alignnone size-full wp-image-142" title="recaptcha" src="http://blog.deam.org/wp-content/uploads/2009/08/recaptcha.png" alt="recaptcha" width="300" height="57" /><br />
Mit einfachen Manipulationen nicht durch Acrobat-OCR erkennbar. Mehr Aufwand wollte ich bei diesem nicht betreiben.</li>
<li>cryptographp &#8211; eine PHP-Variante die ich selbst gerne ab und an einsetze:<br />
<img class="alignnone size-full wp-image-144" title="cryptographp" src="http://blog.deam.org/wp-content/uploads/2009/08/cryptographp.png" alt="cryptographp" width="130" height="40" /><br />
Es gab Beispiele, die haben funktioniert. Aber meistens kam nur etwas ähnliches raus. Selbst dieses einfache Bild wird nur zu diesem Text: <strong>VU&#8221; A ,.</strong><br />
Ein Vergrößeren wie im nächsten Beispiel hat hier jedenfalls nicht geholfen.</li>
<li>kein CAPTCHA, aber der Klassiker der <a href="http://deam.org/de/themen/emailspam/" target="_blank">eMail-Verschleierung</a> (vom gleichen Whois-Anbieter wie unter 1.):<br />
<img class="alignnone size-full wp-image-138" title="whois_email" src="http://blog.deam.org/wp-content/uploads/2009/08/whois_email.png" alt="whois_email" width="82" height="20" /><br />
Das hat nicht auf Anhieb funktioniert. Aber mit einer einzigen Photoshopaktion, nämlich den Vergrößern um 400% konnte ich dann das hier aus dem Bild extrahieren: <strong>kmb@dearn .org</strong> &#8211; nur zwei Fehler, wobei ein Leerzeichen für eMail-Grabber nun wirklich unproblematisch ist&#8230;</li>
</ol>
<p>Man kann aus dieser kleinen Auswahl eines ableiten: Ein bisschen (bunter) Hintergrund ist nutzlos. Die Buchstaben und Zahlen müssen mind. verzerrt sein, anderfalls ist die Erkennung ohne grossen Aufwand möglich.</p>
<p><strong>Automatisierung</strong></p>
<p>Natürlich ist dieser manuelle Weg nicht praktikabel. Aber diese Dinge lassen sich ja automatisieren. Man nehme z.B. das <a href="https://addons.mozilla.org/en-US/firefox/addon/3863" target="_blank">iMacros</a>-Plugin für den Firefox.<br />
Ich hab es nicht ausprobiert, aber iMacros lässt sich sicher mit dem &#8220;Automator.app&#8221; von MacOSX kombinieren. Mit Automator.app kann ich auf jeden Fall Screenshots erzeugen und Programme aufrufen. Die Texterkennung von Acrobat liesse sich so sicher auch ansteuern. Das Resultat dann so zu speichern das es von einem weiteren Programm/ Script verarbeitet werden kann, sollte dann auch kein mehr Problem sein.</p>
<p>Es steckt sicher einiges an Arbeit darin einen Workflow zu etablieren, der halbwegs stabil und in anständiger Geschwindigkeit abläuft &#8211; aber machbar ist das.<br />
Und wenn die so gewonnenen Daten &#8211; in welcher Weise auch immer &#8211; wertvoll sind, dann ist es sicher kein Problem diesen Aufwand zu finanzieren.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.deam.org/2009/08/20/captcha-copy-protection-ein-kleiner-testlauf-mit-browser-und-ocr/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>onreadystatechange FAILS Error: Firefox 3.5.1 (3.5.0) und Firebug 1.4.0</title>
		<link>http://blog.deam.org/2009/07/21/onreadystatechange-fails-error-firefox-3-5-1-3-5-0-und-firebug-1-4-0/</link>
		<comments>http://blog.deam.org/2009/07/21/onreadystatechange-fails-error-firefox-3-5-1-3-5-0-und-firebug-1-4-0/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 06:34:32 +0000</pubDate>
		<dc:creator>Klaus M. Brantl</dc:creator>
				<category><![CDATA[Javascript/ HTML/ CSS]]></category>
		<category><![CDATA[firebug]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[webdeveloper-toolbar]]></category>

		<guid isPermaLink="false">http://blog.deam.org/?p=101</guid>
		<description><![CDATA[Vor einigen Tagen bin ich zum ersten mal über das Phänomen gestolpert, das XHTTP-Requests zwar abgesetzt wurden, aber dann nix mehr passiert ist. In der console von Firebug steht dann u.a. eine Meldung wie diese: onreadystatechange FAILS Error: Permission denied for &#60;http://test.deam.org&#62; to create wrapper for object of class UnnamedClass Error: Permission denied for &#60;http://test.deam.org&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>Vor einigen Tagen bin ich zum ersten mal über das Phänomen gestolpert, das XHTTP-Requests zwar abgesetzt wurden, aber dann nix mehr passiert ist.<br />
In der console von <a href="https://addons.mozilla.org/en-US/firefox/addon/1843">Firebug</a> steht dann u.a. eine Meldung wie diese:</p>
<blockquote><p>onreadystatechange FAILS Error: Permission denied for &lt;http://test.deam.org&gt; to create wrapper for object of class UnnamedClass Error: Permission denied for &lt;http://test.deam.org&gt; to create wrapper for object of class UnnamedClass readystatechange</p></blockquote>
<div>Ich kann es schlecht sagen, aber beim 3.5.0er <a href="http://www.getfirefox.com/">Firefox</a> gab es dieses Problem wohl auch schon. Nur hatte ich da imho keine Fehlermeldungen im Log.</div>
<div>Nach ein bisschen Suchen bin ich auf dieses Blog gestossen: <a href="http://www.nczonline.net/blog/2009/07/09/firefox-35firebug-xmlhttprequest-and-readystatechange-bug/">http://www.nczonline.net/blog/2009/07/09/firefox-35firebug-xmlhttprequest-and-readystatechange-bug/</a></div>
<div>Er hat die gleichen Probleme. Ausserdem wurden Bugtickets bei Firefox und Firebug eröffnet. Das ganze hat wohl mit den neuen Security-Features im Firefox zu tun und die Art wie Firebug &#8220;dazwischengreift&#8221;.</div>
<div>Der Fehler tritt bei mir eigentlich nru auf, wenn die Firebug-Console offen ist. Dann aber auch so sporadisch, das ich kein Muster erkennen kann.</div>
<div>Der Fehler tritt allerdings nie aus, wenn ich den Cache des Firefox ausschalte &#8211; daher ist mir das wohl auch erst recht spät aufgefallen. Ich benutze zusätzlich zum Firebug die &#8220;<a href="https://addons.mozilla.org/en-US/firefox/addon/60">Web Developer-Toolbar</a>&#8221; und benutze zum Entwickeln gerne &#8220;Disable Cache&#8221;&#8230; Natürlich kann ich nicht 100% sagen ob das etwas hilft, aber als temporärer Workaround hilft es vielleicht :-)</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.deam.org/2009/07/21/onreadystatechange-fails-error-firefox-3-5-1-3-5-0-und-firebug-1-4-0/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
