Accesskeys: Mit n zur Navigation, mit c zum Inhalt

Diese Webseite verwendet Cookies zum Spamschutz, zur dauerhaften Sprachauswahl, zum dauerhaften einloggen und für Statistiksoftware.

Mit Nutzung dieser Webseite erklären Sie sich damit einverstanden. Datenschutzerklärung

04.07.2012

Tomcat: APR unter Linux verwenden

[update 04.07.2012]

Getestet mit: Ubuntu 12.04LTS

Vor den Schritten ist sicherzustellen, dass:

  • Openjdk bereits installiert ist,
  • Tomcat im eigenen Home Verzeichnis bereit liegt.
  • Tomcat für die Verwendung von APR konfiguriert ist.
  • Das Paket build-essential installiert ist.

 

1. APR herunterladen und installieren:

  • Unter http://apr.apache.org/download.cgi den aktuellen APR Source Code herunterladen.
  • Heruntergeladenes Paket entpacken.
  • Im entpackten Ordner (bspw: apr-1.4.6) folgendes Befehl ausführen:
./configure && sudo make && sudo make install

 

Bei einer Ausgabe ähnlich:

Libraries have been installed in:
   /usr/local/apr/lib

war der build erfolgreich.

 

2. Tomcat native builden

  • Im Tomcat Verzeichnis im Ordner bin das Paket tomcat-native-x.x.xx.tar.gz entpacken.
  • Wechseln in die neu entpackte Ordnerstruktur: ./tomcat-native-x.x.xx-src/jni/native/
  • Folgenden Befehl ausführen (evtl. ist der Pfad zur Java Version an zu passen, hier wird eine 64 bit Version genutzt!!):
./configure --with-apr=/usr/local/apr/bin/apr-1-config --with-java-home=/usr/lib/jvm/java-6-openjdk-amd64 && sudo make && sudo make install

 

3. Neue Libraries kopieren

  • Libraries mit folgendem Befehl in die Systemlibraries verschieben (damit sie vom Tomcat gefunden werden):
sudo cp -r /usr/local/apr/lib/* /usr/lib/

 

Beim nächsten Tomcat Start sollten die APR gefunden werden. Wenn irgendwas nciht stimmt, teilt einem Tomcat dies sehr genau mit.

 

Server.xml:

die Server.xml Datei des Tomcats sollte den Connector für den SSL Port konfiguriert haben. Ein APR Connector für Port 8443 kann so aussehen:

<connector acceptcount="100" disableuploadtimeout="true" enablelookups="false" maxhttpheadersize="8192" maxthreads="150" port="8443" scheme="https" secure="true" sslcertificatefile="${catalina.base}/conf/server.cert" sslcertificatek
[...]
weiterlesen & kommentieren... 0 Kommentare
Schlagwörter: ubuntu webdevelopment
05.09.2011

Spam verhindern ohne Captchas

Spammer verbreiten seit Jahren Ihren Werbe- oder Datenmüll hoch automatisiert.captchas

Mein Blog war in seiner ersten Version auch anfällig für sogenannte Spambots, die keine Probleme damit hatten Kommentare zu posten.

Als Reaktion baute ich eine Captcha Abfrage ein, also ein Bild was eine zufällige Folge von Zeichen darstellt, die ein Benutzer dann eingeben muß. Spambots versagen hier in der Regel wodurch der gewünschte Schutz vor Spam entsteht.

Nun ist diese Variante der Spamabwehr allerdings nutzerunfreundlich. Technisch gesehen ist es eine geringe Hürde, für sehschwache oder gar blinde Internetnutzer ist es allerdings unzumutbar und selbst erfahrene Internetnutzer springen oft genervt ab, wenn sie ein Captcha abtippen sollen, nur um ein Kommentar ab zu geben?!

 

Viel interessanter ist es, sich das Verhalten der Spambots genauer an zu schauen und aus diesem Verhalten Regeln zur Spamabwehr zu erstellen. Ich konnte einige Regeln erstellen, die jetzt dazu dienen meinen Blog von Spamkommentaren frei zu halten.

1. Bots brauchen nur wenige Sekunden um ein Formular ab zu senden. Eine natürliche Person benötigt mindestens 8 Sekunden um zum Kommentarfeld zu scrollen, einen Namen und ein Kommentar an zu geben (und dann wurde noch nichts gelesen was man kommentieren könnte).

2. Bots füllen meist alle Felder eines Formulars und senden diese an den Server. Selbst wenn diese eigentlich nicht für den Nutzer sichtbar sind.

3. Bots ändern keine Werte in vorbelegten Feldern, besonders nicht in hidden fields.

Aus diesen Verhaltensmustern lassen sich schon gute Regeln erstellen, die Bots ausschließen und normalen Nutzern nicht im Weg stehen.

1. Speichere den timestamp beim anschauen einer Seite und überprüfe beim absenden eines Kommentars ob der Nutzer mindestens x Sekunden von anschauen der Seite bis zum Kommentar gebraucht hat. Wenn es schneller ging, ist es vermutlich ein Spambot.

2. Baue Felder mit den namen "email" und "url" in Dein Formular ein, aber verstecke sie per CSS (Bsp: style="position:absolute; top:-1000px; left:-1000px;") und benenne typische Felder für E-Mail oder Name

[...]
weiterlesen & kommentieren... 5 Kommentare
Schlagwörter: webdevelopment
15.06.2011

Invitation for hacking - Einladung zum hacken

I invite you to hack my website... I am surely no security guru, but have hopefully done the basics to secure my website. Nevertheless I would like to know if it is really secure. I guess not for a real pro, but this is the point, I want to know where I have to improve my security skills and learn how to make a website more secure!

So if you are a hacker or security pro, come on! Do it! Change my startpage, inject javascript code in the blog or tell me my login. As long as you don't harm other visitors and point out the issues to me, I will give you credit in my about page if you like.

There is a comment function in the blog, a search input and loginform. I guess these are the most common things to start from.

Have Fun!

/

Ich lade Dich herzlich dazu ein meine Webseite zu "hacken". Ich bin kein Sicherheitsguru, hab aber einiges getan um die Seite sicher zu machen. Trotzdem würde ich gerne wissen ob sie wirklich sicher ist. Vermutlich nicht sicher genug für Profis, aber darum geht es mir: Ich will wissen wo ich mich verbessern muß und wie ich eine Webseite noch sicherer machen kann.

Also wenn Du ein Hacker bist, komm schon! Tu es! Veränder meine Startseite, schleuse Javascript ein oder finde mein Login heraus. Solange Du keine anderen Benutzer gefährdest und mir die Schwachstellen aufzeigst, werde ich Dir im Impressum danke, wenn Du das überhaupt möchtest.

Es gibt eine Kommentarfunktion im Blog, eine Suche und ein Login. Vermutlich die besten Orte um anzufangen.

Viel Spaß!


weiterlesen & kommentieren... 2 Kommentare
Schlagwörter: webdevelopment