<?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>Zustandsforschung &#187; email</title>
	<atom:link href="http://www.zustandsforschung.de/index.php/tag/email/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.zustandsforschung.de</link>
	<description>Mit offenen Augen durch die Welt</description>
	<lastBuildDate>Wed, 04 Jan 2012 13:22:09 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Mailadresse mit reCAPTCHA vor Spam schützen</title>
		<link>http://www.zustandsforschung.de/index.php/mailadresse-mit-recaptcha-vor-spam-schuetzen/</link>
		<comments>http://www.zustandsforschung.de/index.php/mailadresse-mit-recaptcha-vor-spam-schuetzen/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 09:18:27 +0000</pubDate>
		<dc:creator>Benedikt</dc:creator>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[captcha]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[spam]]></category>

		<guid isPermaLink="false">http://www.zustandsforschung.de/?p=1085</guid>
		<description><![CDATA[Was ein CAPTCHA ist brauche ich wahrscheinlich keinem mehr zu erklären und wahrscheinlich kennen auch die meisten den reCAPTCHA-Service, der eine einfache Variante darstellt, ein CAPTCHA zu integrieren und gleichzeitig beim digitalisieren von Büchern hilft.
Was ich aber bis jetzt nicht wusste ist, dass dort auch ein Service zum Schützen von E-Mail-Adressen angeboten wird. Man gibt [...]]]></description>
			<content:encoded><![CDATA[<p>Was ein CAPTCHA ist brauche ich wahrscheinlich keinem mehr zu erklären und wahrscheinlich kennen auch die meisten den <a href="http://recaptcha.net/index.html">reCAPTCHA-Service</a>, der eine einfache Variante darstellt, ein CAPTCHA zu integrieren und gleichzeitig beim digitalisieren von Büchern hilft.</p>
<p>Was ich aber bis jetzt nicht wusste ist, dass dort auch ein Service zum Schützen von E-Mail-Adressen angeboten wird. Man gibt bei <a href="http://mailhide.recaptcha.net">reCAPTCHA Mailhide</a> seine Mailadresse ein und bekommt einen HTML-Schnipsel zurück, der die Adresse folgendermaßen versteckt:</p>
<p>bene<a href="http://mailhide.recaptcha.net/d?k=01wIVKcFl6HGFxCzFVr3y7FA==&amp;c=XN-7zDTt07yo6SG1iLra3y-NCjmbgFND5VzBPcZ7quM=" onclick="window.open('http://mailhide.recaptcha.net/d?k=01wIVKcFl6HGFxCzFVr3y7FA==&amp;c=XN-7zDTt07yo6SG1iLra3y-NCjmbgFND5VzBPcZ7quM=', '', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=500,height=300'); return false;" title="Reveal this e-mail address">&#8230;</a>@gmail.com</p>
<p>Klickt man jetzt auf die 3 Pünktchen öffnet sich ein Fenster wo man eine CAPTCHA-Abfrage bestehen muss und anschließend die vollständige E-Mail-Adresse angezeigt bekommt.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zustandsforschung.de/index.php/mailadresse-mit-recaptcha-vor-spam-schuetzen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$</title>
		<link>http://www.zustandsforschung.de/index.php/a-z0-9-_-a-z0-9-a-z2/</link>
		<comments>http://www.zustandsforschung.de/index.php/a-z0-9-_-a-z0-9-a-z2/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 10:35:28 +0000</pubDate>
		<dc:creator>Benedikt</dc:creator>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[programmierung]]></category>
		<category><![CDATA[regex]]></category>
		<category><![CDATA[validierung]]></category>

		<guid isPermaLink="false">http://www.zustandsforschung.de/?p=1009</guid>
		<description><![CDATA[Das immer wieder gerne angeführte Standardbeispiel für die Anwendung von Regular Expressions ist die E-Mail-Validierung. Mittels eines mehr oder weniger komplizierten Ausdrucks soll dabei geprüft werden, ob die von einem Benutzer in ein Webformular eingegebene E-Mail-Adresse den Regeln für eine gültige Adresse genügt. Dabei reichen die Varianten von eher simplen wie z.B. 
^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$
über komplizierte wie [...]]]></description>
			<content:encoded><![CDATA[<p>Das immer wieder gerne angeführte Standardbeispiel für die Anwendung von Regular Expressions ist die E-Mail-Validierung. Mittels eines mehr oder weniger komplizierten Ausdrucks soll dabei geprüft werden, ob die von einem Benutzer in ein Webformular eingegebene E-Mail-Adresse den Regeln für eine gültige Adresse genügt. Dabei reichen die Varianten von eher simplen wie z.B. </p>
<p><code>^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$</code></p>
<p>über komplizierte wie </p>
<p><code>[a-z0-9!#$%&#038;'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&#038;'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?</code></p>
<p>bis hin zu solchen, die man schon eher als <em>völlig irre</em> bezeichnen könnte:</p>
<p><code>(?:[a-z0-9!#$%&#038;'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&#038;'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])</code></p>
<p>die allesamt darauf abzielen eine mehr oder weniger genaue Abdeckung der in <a href="http://tools.ietf.org/html/rfc2822#section-3.4.1">RFC 2822 &#8211; Internet Message Format</a> definierten Vorgabe zu erfüllen.</p>
<p>Die Frage ist doch aber &#8211; warum tut man so etwas? Klar, man möchte dass der Benutzer eine gültige E-Mail-Adresse (im besten Fall seine eigene) in ein Formular einträgt. Aber dient eine Validierung der Gültigkeit mittels Regular Expressions wirklich diesem Zweck?</p>
<p>Mit fallen zwei Szenarien ein, wo ein Benutzer eine ungültige E-Mail-Adresse eingibt: Entweder er macht es unabsichtlich, wenn er sich vertippt oder so. Oder er macht es absichtlich, um irgendeine Zwangsregistrierung zu umgehen. In beiden Fällen greift die Validierung über Regular Expression nicht wirklich.</p>
<p>Erster Fall &#8211; Versehen: Wenn ich mich beim Eingeben der Mailadresse vertippe, dann dreht sich das doch meist um einzelne Buchstaben &#8211; dass ich das &#8220;@&#8221; vergesse kommt eher selten vor. D.h. ich kann mich leicht so vertippen, dass ich zwar eine formal gültige Adresse eingebe, die aber leider trotzdem falsch ist (z.B. Buchstabendreher im Vornamen).</p>
<p>Zweiter Fall &#8211; Absicht: Ich kann mir leicht eine lustige Mailadresse ausdenken, die bei der Validierung zwar durchgeht, aber völlig frei erfunden ist. Die Mailadresse hab.ich@erfunden.de erfüllt zwar die Validierung &#8211; ist aber deshalb noch lange keine gültige E-Mail-Adresse.</p>
<p>Eine mögliche Lösung könnte daher sein, die Mailadresse über Double Opt-in zu validieren, also dass man dem Benutzer eine Mail an diese Adresse schickt, die einen Link enthält, den der Benutzer klicken muss, um seine E-Mail-Adresse zu bestätigen. Aber auch diese Variante schützt nicht gegen mutwillige Falscheingabe &#8211; es gibt immer noch <a href="http://www.spamgourmet.com/">Spamgourmet</a>, <a href="http://www.mailinator.com/">Mailinator</a> und ähnliche Sites, die Wegwerf-E-Mail-Adressen bereitstellen.</p>
<p>Fazit: Mit Regular Expressions kann man zwar den Benutzer bei der Eingabe etwas unterstützen, aber der Weisheit letzter Schluss sind sie für die E-Mail-Validierung deshalb noch lange nicht. Und gerade deshalb braucht man sich auch nicht verkünsteln, um zu beweisen, wie toll man Regular Expressions (kopieren) kann.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zustandsforschung.de/index.php/a-z0-9-_-a-z0-9-a-z2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

