• Zur Zeit online

  • Login

  • Kategorien

  • Letzte Artikel

  • Letzte Kommentare

  • Tagged

  • Seiten

  • Archiv

  • Subscribe


  • BlogPingR.de - Blog Ping-Dienst, Blogmonitor
    Seiten: Zurück 1 2 3 4 5 6 7 8 9 10

    mod_security2

    By Hanno Heeskens on 27.07.2008, 03:22 Uhr;
    Apache, MySQL | 1 Comment »

    Weil es gerade so aktuell ist: mod_security2 in der neueren Version lässt sich nicht mehr über .htaccess abschalten. Um es dennoch per VHost kontrollieren zu können reicht ein Eintrag in der entsprechenden vhost.conf:

    SecRuleEngine Off

    Diese Anweisung kommt in die <VirtualHost…>…</Virtualhost> Umgebung, nicht in die <Direcorty>…</Directory>. Damit ist es auch unter Confixx über die httpd-specials möglich, mod_security per User auszuschalten.

    TagCloud für typo3-Seitenzugriffe

    By Hanno Heeskens on 27.07.2008, 03:06 Uhr;
    MySQL, PHP | No Comments »

    Unsere neue Webseite unter www.net-publics.de steht kurz vor dem kompletten Relaunch. Aber das gewisse Etwas fehlte uns noch. Schnell war da die Idee geboren, eine Tag-Cloud über die am meisten besuchten Produktseiten zu erstellen. Ein Blick in das Extension Repository von Typo3 brachte da erstmal Ernüchterung: keine fertige Extension verfügbar. Also war selber machen angesagt.

    Das Problem war leicht in zwei zu unterteilen: Einmal die Tag-Cloud an sich und dann die Seitenzugriffe ermitteln in Typo3. Daraus eine Kombination würde die “Top-Content Cloud” ergeben.

    Für die Ermittlung der Seitenzugriffe in Typo3 habe ich mich der Extension Simple hit statistics (sys_stat) bedient. Diese zeichnet in einer externen Datenbank alle Anfragen ab, die an die Seite gestellt werden. Zugegeben, es wird noch mehr protokolliert als die Infos, die ich brauche, aber wer weiß, wozu das noch gut sein kann…

    Folgendes SQL-Query übernimmt dann die Hauptarbeit:

    select count(b.title) as weight,
    a.page_id, a.IP,
    b.title from sys_stat as a
    left join pages as b on
    a.page_id=b.uid
    where unix_timestamp()-a.tstamp < 172800
    and a.page_id IN ( $show_pages )
    group by title;

    Es werden hier also die Datenbanken des Statistiktools und die von typo3 verbunden. So werden nicht nur die Zugriffe, sondern auch die Seiten ID und deren Titel ausgelesen. $show_pages ist dabei eine einfache durch Komma separierte Liste der Seiten-IDs, die in der Cloud auftauchen sollen. Betrachtet werden nur die Daten der letzten 172800 Sekunden (2 Tage).
    Das ganze Ergebnis lassen wir nun in einer Schleife in zwei Arrays schreiben, die es uns nachher einfacher machen, die Berechnungen der Größe durchzuführen:

    while ($row = mysql_fetch_array($res)) {
    $tags[ $row['title'] ] = $row['weight'];
    $link[ $row['title'] ] = $row['page_id'];
    }

    Parallel dazu erstellen wir noch eine Übersicht über alle Seiten, die wir über das Plugin real-url ansprechen wollen, um schönere Links in unserer Cloud zu haben:

    $page = mysql_query( “select page_id,spurl from tx_realurl_urldecodecache; “);
    while ($row = mysql_fetch_array($page)) {
    $realurl[ $row['page_id'] ] = $row['spurl'];
    }

    Wir haben nun drei Arrays: Die Tags mit zugehöriger Gewichtigkeit, die Seiten ID mit entsprechendem Link und zudem noch die Ergebnisse aus der real-URL Datenbank.

    Jetzt kann es an die Cloud gehen:
    Dazu erstmal ein paar Einstellungen, die ich jedes Mal von vorne berechnen lasse, da ich den Code in einer Funktion verwende, die nur die zu enthaltenen Seiten als Argument bekommt.

    $max_weight = max(array_values($tags));
    $min_weight = min(array_values($tags));

    $max_font_size = 180;
    $min_font_size = 80;

    Hier werden die kleinsten und größten Werte aus dem Array heraus geholt und je Maximal- und Minimalwert für die Schriften gesetzt. Anschließend wird mit

    $spread = $max_weight-$min_weight;
    if (0 == $spread) { $spread = 1; }
    $step = ($max_font_size - $min_font_size)/($spread);

    die Abstufungen der Schriftgröße berechnet.
    Jetzt können die einzelnen Tags der Reihe nach abgearbeitet werden:

    foreach ($tags as $key => $value) {
    $size = $min_font_size + (($value - $min_weight) * $step);
    $size = ceil($size);
    if ( $realurl[ $link[$key] ] != “” ) {
    echo ‘<a href=”/’.$realurl[ $link[$key] ].’” style=”font-size: ‘.$size.’%”‘;
    } else {
    echo ‘<a href=”/index.php?id=’.$link[$key].’” style=”font-size: ‘.$size.’%”‘;
    }
    echo ‘ title=”‘.$key.’”‘;
    echo ‘>’.$key.’</a> ‘;
    echo “\n”;
    }

    Was passiert hier?
    Zuerst berechnen wir die aktuelle Schriftgröße des Tags anhand der Wertigkeit (also der Anzahl der Seitenbesuche) und runden diesen Wert. Danach schauen wir, ob für diese Seite im Real-URL Cache ein Treffer vorliegt und geben diesen im Link aus. Ist kein Treffer vorhanden, verlinken wir auf die Seite anhand der Typo3-PageID. Zusätzlich wird in dem Link noch das title-tag auf den Seitentitel gesetzt.

    Das fertige Ergebnis kann auf http://www.net-publics.de/ angeschaut werden.
    Was noch ergänzt werden muß ist ein Schutz gegen das manipulieren der Tag Cloud. Das ist derzeit noch ganz rudimentär über mod_evasive geregelt, dazu in einem anderen Artikel später vielleicht mehr.

    Nagios Monitoring

    By Hanno Heeskens on 22.04.2008, 20:27 Uhr;
    Linux | No Comments »

    Unsere Serverüberwachung mit nagios wird immer anschaulicher. Wir haben nun ein Frontend im Einsatz, welches die einfache Nagios-Oberfläche ablösen kann und für Kunden einfach schöner aussieht. Centreon ist ein französisches Open Source Projekt, welches komplett neben einer Nagios Installation laufen kann. Die Konfiguration kann sowohl über das Interface als auch komplett auf Kommandozeilenebene ablaufen - Centreon liest diese dann ein und verarbeitet sie entsprechend. Die unterschiedlichsten Funktionen von Nagios werden sehr schön und übersichtlich dargestellt, so dass eine lange Einarbeitungszeit nicht nötig ist.

    Nähere Informationen gibt es unter http://centreon.com/

    Sicherheit mit fail2ban

    By Hanno Heeskens on 22.04.2008, 20:22 Uhr;
    Linux | No Comments »

    Immer wieder werden Server von Skript-Kiddies oder echten Angreifern heimgesucht - das können SSH Attacken sein oder Spammer, die versuchen, Ihre Mails loszuwerden. Ein einfaches wie effektives Tool gegen solche Machenschaften ist fail2ban. Ein kleines Perl Skript scannt die Logfiles nach bestimmten Pattern und schließt nach einer gewissen Anzahl Fehlversuche die angreifende IP per iptables aus. Die Pattern, die maximale Anzahl der Versuche sowie die Bantime sind frei konfigurierbar. Unter Debian 4 ist das Tool über apt zu installieren, in der Gundkonfiguration sind schon sehr gute Einstellungen vorhanden.

    Weitere Informationen und Installationshinweise gibt es unter http://fail2ban.org/

    CakePHP

    By Hanno Heeskens on 22.04.2008, 20:17 Uhr;
    PHP | No Comments »

    Schon mehrfach habe ich mir vorgenommen, einmal ein genaueren Blick auf Ruby on Rails zu werden. Leider habe ich das bisher noch nicht geschafft, obwohl das Konzept wirklich einleuchtend und einfach klingt. Zu groß ist aber der gwohnte Umgang mit PHP.
    Heute habe ich ein interessantes Framework für PHP gefunden, welches sich an Ruby on Rails orientiert. Es erlaubt die Entwicklung nach dem Modell View Controller Modell (MVC). Die Installation bishin zu ersten Ergebnissen kann sich wirklich sehen lassen, alles ging problemlos und wirklich schnell. Es ist denke ich für jeden, der schnell Anwendungen in PHP schreiben möchte und dabei nicht jede Codezeile einzeln schreiben möchte einen Blick wert.

    Mehr Infos gibt es auf der Homepage unter http://cakephp.org/

    Seiten: Zurück 1 2 3 4 5 6 7 8 9 10