<?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>multicepT. Service auf den Punkt gebracht. &#187; Allgemein</title>
	<atom:link href="http://www.multicept.de/blog/category/allgemein/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.multicept.de/blog</link>
	<description></description>
	<lastBuildDate>Tue, 15 Jun 2010 17:05:59 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>de</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>E-Mail Formulare richtig umsetzen&#8230;</title>
		<link>http://www.multicept.de/blog/45/wie-man-e-mail-formulare-richtig-umsetzt/</link>
		<comments>http://www.multicept.de/blog/45/wie-man-e-mail-formulare-richtig-umsetzt/#comments</comments>
		<pubDate>Sun, 24 Jan 2010 12:17:40 +0000</pubDate>
		<dc:creator>Oliver Herms</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://www.multicept.de/blog/?p=45</guid>
		<description><![CDATA[Was ist eigentlich bei der Umsetzung von E-Mailformularen auf Webseiten zu beachten?
Eine ganze Menge!
Um unseren Hostingkunden diese Dinge nicht immer wieder vom neuen erklären zu müssen, haben wir folgenden Artikel über die richtige Umsetzung von E-Mail Formularen verfasst.

Empfängeradresse
Absenderadressen und Namen
Betreffzeilen
Kodierung
HTML
Return-Path

1. Empfängeradresse
Die Empfängeradresse ist niemals durch den Benutzer festzulegen, da ein Formular so 100%ig zum Versand [...]]]></description>
			<content:encoded><![CDATA[<p>Was ist eigentlich bei der Umsetzung von E-Mailformularen auf Webseiten zu beachten?<br />
Eine ganze Menge!</p>
<p>Um unseren Hostingkunden diese Dinge nicht immer wieder vom neuen erklären zu müssen, haben wir folgenden Artikel über die richtige Umsetzung von E-Mail Formularen verfasst.<span id="more-45"></span></p>
<ol>
<li>Empfängeradresse</li>
<li>Absenderadressen und Namen</li>
<li>Betreffzeilen</li>
<li>Kodierung</li>
<li>HTML</li>
<li>Return-Path</li>
</ol>
<p>1. Empfängeradresse</p>
<p>Die Empfängeradresse ist niemals durch den Benutzer festzulegen, da ein Formular so 100%ig zum Versand von Spam missbraucht wird. Die Empfängeradresse ist also fest im Programmcode zu codieren. Versteckte HTML-Formularfelder oder $_GET-Parameter sind ebenfalls nicht geeignet, da sie sehr leicht durch einen Angreifer manipuliert werden können.</p>
<p>2. Absenderadresse und Name</p>
<p>Jede Absenderadresse, die ein Benutzer eingeben darf, ist auf Gültigkeit zu überprüfen. Es reicht ausdrücklich nicht aus, dass die Adresse ein @-Zeichen enthält. Eine Überprüfung mittels regulärem Ausdruck ist Pflicht!</p>
<p>Eine Prüfung kann in PHP beispielsweise wie folgt aussehen:</p>
<p>preg_match(&#8220;/^[a-z0-9!#$%&amp;'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&amp;'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[a-z]{2,4}|museum|travel)$/i&#8221;, $adresse)</p>
<p>Im Falle, dass die Adresse gültig ist, gibt preg_match true, im Fehlerfall false zurück.</p>
<p>Was auf gar keinen Fall in der Absenderadresse erlaubt sein darf, ist das Einfügen von Zeilenumbrüchen. Die Verwendung von &lt;input&gt;-Tags reicht hier nicht aus, da ein Angreifer trotzdem Zeilenumbrüche einschleusen kann. Dadurch ist es einem Angreifer möglich, einer E-Mail beliebige Headerzeilen, beispeilsweise eine To: &lt;empfänger&gt; Zeile, hinzuzufügen. Hierdurch kann ein E-Mailformular zum massenhaften Versandt von Spam missbraucht werden.</p>
<p>3. Betreffzeilen</p>
<p>Betreffzeilen dürfen ausschließlich 7-Bit ASCII-Code enthalten. Also kein ä ö ü ß oder ähnliches!<br />
Sonderzeichen müssen generell umkodiert werden.</p>
<p>In PHP ist dies beispielsweise mit der Funktion mb_convert_encoding möglich.</p>
<p>$betreff = mb_convert_encoding($betreff, &#8220;ASCII&#8221;, &#8220;UTF-8&#8243;);</p>
<p>Auch in der Betreffzeile darf auf gar keinen Fall ein Zeilenumbruch akzeptiert werden!<br />
Hier gilt das selbe wie bei der Absenderadresse!</p>
<p>4. Kodierung</p>
<p>Die Kodierung einer E-Mail ist stets im Header anzugeben!<br />
Fehlende Header führen immer wieder zu nicht ordnungsgemäß darstellbaren E-Mails.<br />
Der Entwickler merkt dies meist nicht. Er erstellt seine E-Mails beispielsweise in UTF-8, und liest diese auch mit seinem UTF-8 Client. Die Darstellung ist dann natürlich korrekt. Öffnet nun aber jemand mit einem ISO-8859-1 Client diese E-Mails, sieht er statt Umlauten nur schwarze Kästchen oder Fragezeichen. Professionell wirkt dies definitiv nicht! Zuletzt erlebten  wir so eine Sache mit dem Carsharing der Deutschen Bahn. Hier fehlte die Kodierungsangabe, und in allen E-Mails wurden die Umlaute bei uns nicht korrekt dargestellt!</p>
<p>Die Kodierung gehört also in den Header der E-Mail eingebaut. Beispielsweise so:</p>
<p>Content-Type: text/plain; charset=utf-8</p>
<p>Selbstverständlich ist auf die Verwendung des richtigen Zeichensatzes zu achten!</p>
<p>Zum Schluss möchten wir noch anmerken, dass fehldende Kodierungsangaben von Spamfiltern gerne bestraft werden, da normale Mailclients stets die Kodierung in den Mailheader einbauen!</p>
<p>5. HTML</p>
<p>HTML in E-Mails ist eine tolle Sache, würde Sie nur richtig verwendet werden. Der HTML-Code gehört nicht einfach in den Mailbody. Es gibt da draußen nicht gerade wenige Leute, die keine HTML Mails öffnen. Enthält die E-Mail jedoch anstelle des Textes einfach nur HTML-Code, sieht der Benutzer einfach nur HTML-Code und wird der E-Mail keine besondere Beachtung schenken.<br />
HTML E-Mails sind stets als Multipart-Messages zu versenden! Wir Empfehlen folgenden Artikel: <a href="http://www.webcheatsheet.com/php/send_email_text_html_attachment.php" target="_blank">http://www.webcheatsheet.com/php/send_email_text_html_attachment.php</a></p>
<p>6. Return-Path</p>
<p>Die Angabe eines Return-Path im Mailheader ist beim Versand von E-Mails über einen Webserver unerlässlich. Kann eine E-Mail beispielsweise nicht zugestellt werden, erzeugt der Mailserver eine Bounce-Nachricht an den Absender. Dies ist im Normalfall der Webserver, was zur Folge hat, dass diese Nachricht nicht zugestellt werden kann. Ist im Header eine Return-Adresse angeben, werden die Bounce-Mails an diese Adresse versandt. Eine Headerzeile für einen Return-Path sieht wie folgt aus:</p>
<p>Return-Path: &lt;benutzer@domain.tld&gt;</p>
<p>So bemerkt der Webmaster auch, wenn eine E-Mail nicht zugestellt werden konnte.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.multicept.de/blog/45/wie-man-e-mail-formulare-richtig-umsetzt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vodafone Mobile Connect 3G Card unter Ubuntu 7.10</title>
		<link>http://www.multicept.de/blog/14/vodafone-mobile-connect-3g-card-unter-ubuntu-710/</link>
		<comments>http://www.multicept.de/blog/14/vodafone-mobile-connect-3g-card-unter-ubuntu-710/#comments</comments>
		<pubDate>Wed, 23 Apr 2008 19:04:24 +0000</pubDate>
		<dc:creator>Oliver Herms</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://www.multicept.de/blog/14/vodafone-mobile-connect-3g-card-unter-ubuntu-710/</guid>
		<description><![CDATA[Heute erhielt ich nach langem warten meine UMTS Karte von Vodafone.
Eine Option GT 3G Quad.
Im Vorfeld informierte ich mich natürlich, inwiefern diese Karte denn unter Linux läuft. Ich fand also diverse  Howto&#8217;s, doch funktionieren wollte keines.
Hier also mein Lösungsweg, um anderen diesen Leidensweg ersparen zu können.
Nach dem Einstecken der Karte sollte die Ausgabe von [...]]]></description>
			<content:encoded><![CDATA[<p>Heute erhielt ich nach langem warten meine UMTS Karte von Vodafone.</p>
<p>Eine Option GT 3G Quad.<br />
Im Vorfeld informierte ich mich natürlich, inwiefern diese Karte denn unter Linux läuft. Ich fand also diverse  Howto&#8217;s, doch funktionieren wollte keines.</p>
<p>Hier also mein Lösungsweg, um anderen diesen Leidensweg ersparen zu können.<span id="more-14"></span></p>
<p>Nach dem Einstecken der Karte sollte die Ausgabe von /sbin/dmesg etwa wie folgt aussehen:</p>
<p><em>[ 3756.756000] ACPI: PCI Interrupt 0000:03:00.1[B] -&gt; Link [LNKA] -&gt; GSI 11 (level, low) -&gt; IRQ 11<br />
[ 3756.756000] PCI: Setting latency timer of device 0000:03:00.1 to 64<br />
[ 3756.756000] ohci_hcd 0000:03:00.1: OHCI Host Controller<br />
[ 3756.756000] ohci_hcd 0000:03:00.1: new USB bus registered, assigned bus number 6<br />
[ 3756.756000] ohci_hcd 0000:03:00.1: irq 11, io mem 0xc4001000<br />
[ 3756.840000] usb usb6: configuration #1 chosen from 1 choice<br />
[ 3756.840000] hub 6-0:1.0: USB hub found<br />
[ 3756.840000] hub 6-0:1.0: 1 port detected<br />
[ 3759.916000] usb 6-1: new full speed USB device using ohci_hcd and address 2<br />
[ 3760.128000] usb 6-1: configuration #1 chosen from 1 choice<br />
[ 3760.132000] usbserial_generic 6-1:1.0: GSM modem (1-port) converter detected<br />
[ 3760.132000] usb 6-1: GSM modem (1-port) converter now attached to ttyUSB0<br />
[ 3760.136000] usbserial_generic 6-1:1.1: GSM modem (1-port) converter detected<br />
[ 3760.136000] usb 6-1: GSM modem (1-port) converter now attached to ttyUSB1<br />
[ 3760.140000] usbserial_generic 6-1:1.2: GSM modem (1-port) converter detected<br />
[ 3760.140000] usb 6-1: GSM modem (1-port) converter now attached to ttyUSB2<br />
[ 3760.140000] usbserial_generic 6-1:1.3: GSM modem (1-port) converter detected<br />
[ 3760.144000] usb 6-1: GSM modem (1-port) converter now attached to ttyUSB3</em></p>
<p>Sollte das Gerät /dev/ttyUSB0 nicht korrekt angelegt worden sein, wird es daran liegen, dass das Modul usbserial nicht korrekt geladen ist. Dies kann mit dem Befehl &#8220;modprobe usbserial vendor=0xaf0 product=0&#215;6300&#8243;.</p>
<p>Nachdem das Gerät als solches nun also erkannt wurde, muss wie beim Handy auch, die PIN &#8220;eingegeben&#8221; werden. Das Passiert idealerweise über ein Script. Das Script sieht wie folgt aus:</p>
<p><em>#!/usr/bin/env perl</em></p>
<p><em>use strict;<br />
use warnings;</em></p>
<p><em>my $modem = &#8220;/dev/ttyUSB0&#8243;;<br />
# Substitute xxxx with your PIN.<br />
# You should probably put your pin somewhere else, e.g. on an USB stick,<br />
# an encrypted file system or something else, and read it from there&#8230;<br />
# You have been warned!<br />
my $pin = &#8220;1234&#8243;;</em></p>
<p><em>$SIG{ALRM} = sub {<br />
die(&#8220;timeout: no response from modem $modem\n&#8221;);<br />
};</em></p>
<p><em>open(MODEM, &#8220;+&lt;&#8221;, $modem) or die(&#8220;can&#8217;t open modem $modem&#8221;);<br />
alarm(10);<br />
print(MODEM &#8220;AT+CPIN=\&#8221;$pin\&#8221;\n\r&#8221;);<br />
while (&lt;MODEM&gt;) {<br />
if (m/OK/) {<br />
close(MODEM);<br />
print(&#8220;PIN accepted\n&#8221;);<br />
exit(0);<br />
}<br />
if (m/ERROR/) {<br />
close(MODEM);<br />
print(&#8220;PIN rejected\n&#8221;);<br />
exit(1);<br />
}<br />
}</em></p>
<p>Hier sollte natürlich die PIN durch eure ausgetauscht werden.<br />
Dieses Script muss vor jeder Einwahl einmal ausgeführt werden.</p>
<p>Nun geht es an die PPP Konfiguration. Wir benötigen dazu zwei Dateien:<br />
eine PPP Konfiguration und<br />
ein CHAT-Script für die Einwahl.</p>
<p>Hier die PPP Konfiguration in /etc/ppp/peers/vodafone:</p>
<p><em>hide-password<br />
noauth<br />
connect &#8220;/usr/sbin/chat -v -f /etc/chatscripts/vodafone&#8221;<br />
debug<br />
/dev/ttyUSB0<br />
460800<br />
defaultroute<br />
noipdefault<br />
user &#8220;vodafone&#8221;<br />
remotename vodafone<br />
ipparam vodafone<br />
usepeerdns<br />
novj<br />
nobsdcomp</em></p>
<p>Hier das CHAT-Script in /etc/chatscripts/vodafone:</p>
<p><em>ABORT BUSY ABORT &#8216;NO CARRIER&#8217; ABORT VOICE ABORT &#8216;NO DIALTONE&#8217; ABORT &#8216;NO DIAL TONE&#8217; ABORT &#8216;NO ANSWER&#8217; ABORT DELAYED<br />
&#8221; ATZ<br />
OK-AT-OK &#8220;ATDT*99***1#&#8221;<br />
CONNECT \d\c</em></p>
<p>Anschließend könnt ihr mit &#8220;pon vodafone&#8221; die &#8220;Einwahl&#8221; vornehmen und mit &#8220;poff vodafone&#8221; die Verbindung wieder trennen.</p>
<p>Sollte das alles nicht funktionieren, so ist die Logdatei /var/log/messages euer bester Freund.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.multicept.de/blog/14/vodafone-mobile-connect-3g-card-unter-ubuntu-710/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
