Archiv

Artikel Tagged ‘PHP’

PHP: Server-OS ermitteln

29. Mai 2010 Kommentare ausgeschaltet

Auf meinem Streifzug durchs Web bin ich auf die phpgangsta.de Seite gestossen:

www.phpgangsta.de/mit-php-das-server-betriebssystem-erkennen

In diesem Beitrag wird detailliert erklärt mit welchen Methoden das Server-Betriebssystem ausgelesen werden kann.

Popularity: 2% [?]

Twitter It!
KategorienPHP Tags:

PHP Shell – Linux Shell via PHP Script

12. August 2009 Kommentare ausgeschaltet

Heute bin ich per Zufall über PHP Shell gestolpert. Bei der PHPShell handelt es sich um ein PHP]Script von Martin Geisler welche Webhosting-Kunden ohne SSH-Zugriff eine Shell-Ähnliche Oberfläche zur Verfügung stellt.

PHP Shell kann unter phpshell.sourceforge.net als .zip oder .tar.bz2 heruntergeladen werden. Die Installation ist denkbar einfach. Es müssen die zwei Files phpshell.php und config.php auf den Webserver übertragen werden. In der Datei config.php muss ein Benutzer angelegt werden, der auf die PHP Shell Zugriff hat. Um das Passwort des Benutzers zu verschlüsseln, gibt es zusätzlich die Datei pwhash.php. Die Datei pwhash.php aufrufen, Benutzername und Passwort eingeben und danach diese in die config.php einfügen.

pwhash.php

pwhash.php

Als zusätzlichen Schutz empfiehlt es sich auf jeden Fall das Verzeichnis in dem sich phpshell befindet mit einem anderen Namen zu benennen sowie per .htaccess vor unbefugtem Zugriff zu schützen.
Genutzt werden können die meisten nicht-interaktiven Programme, welche auf dem Webserver installiert sind und sich auch mit einer normalen Shell nutzen ließen. Interaktive Programme, wie Editoren (z.B. vim) können nicht genutzt werden. Hierfür gibt es jedoch eine Erweiterung der PHPShell von Tobias Unger welche von seiner Website downgeloaded werden kann.

phpshell

Wie auf dem PrintScreen oben zu erkennen ist, lassen sich mit PHPShell auch ohne Probleme Shellscripte aufrufen. In diesem Fall ein Backupscript das jeden Tag den Webspace auf einen externen FTP Server backupt.

Popularity: 14% [?]

Twitter It!

Automatisiertes MySQL Backup

24. April 2009 Kommentare ausgeschaltet

Im Moment beschäftige ich mich mit dem automatisierten Backup von MySQL sowie Webseiteninhalten.

Eine Möglichkeit zum Backupen von MySQL DBs ist der MySQL Administrator. Er kann auch automatisiert Backups erstellen. Nachteil dieser Lösung ist, dass ein PC/Mac laufen muss, damit das Backup automatisiert über den Cronjob ausgeführt wird.

Ein MySQL Backup kann jedoch auch über ein Shell Script oder ein PHP Script erstellt werden. Dieses wird dann vom Server mit Cronjob regelmässig aufgerufen:

<?php
system(
  sprintf(
    'mysqldump --opt -h%s -u%s -p"%s" %s | gzip > %s/backup.sql.gz',
    $dbhost,
    $dbuser,
    $dbpwd,
    $dbname,
    getenv('DOCUMENT_ROOT')
  )
);
?>

Wer es ein wenig detaillierter haben will, findet im selfphp Kochbuch Hilfe.

Ein weiteres sehr gutes Script findet sich bei DragonDesign. Ich werde dieses Backupscript als Grundlage für meine Weiterentwicklung gebrauchen.

Folgende Punkte will ich zusätzlich integrieren:

  • Backup vordefinierter Ordner
  • Komprimieren des File und MySQL Backups in einem Archiv
  • Automatisiertes Hochladen des Backups auf einen entfernten FTP Server

Je nach dem wie gut mein Hack ist, werde ich das Script danach hier zum Download anbieten.

Popularity: 2% [?]

Twitter It!
KategorienPHP, SQL Tags: , ,

Die 10 besten PHP Frameworks

2. April 2009 Kommentare ausgeschaltet

In der PHP Zone von DZone wurde heute ein Artikel mit den 10 besten PHP Frameworks veröffentlicht.

Vorgestellt werden

Popularity: 1% [?]

Twitter It!
KategorienPHP Tags:

PHP Programmierung mit Klassen

6. Februar 2009 Kommentare ausgeschaltet

Wer mit PHP programmiert kommt bald einmal nicht um Klassen herum. Eine gute Anleitung wie man Klassen baut, findet sich auf PHP.net

Klassen und Objekte mit PHP 5

Popularity: 1% [?]

Twitter It!
KategorienPHP Tags:

PHP ausführliches Error Reporting

29. Januar 2009 Kommentare ausgeschaltet

Der erste Schritt um eine PHP Anwendung abzusichern ist das aktivieren eines Features zum loggen der Anwendungsfehler. Anwendungsfehler geben oft Rückschlüsse auf die Angreifbarkeit der Anwendung.
Beispiel: Viele der register global ähnlichen Fehler können einfach entdeckt werden wenn man das Error-Report Level erhöht.

Hier der Code zum dies zu machen:

error_reporting(E_ALL | E_STRICT);   // in PHP 4.x E_ALL
ini_set("display_errors", 0);
ini_set("log_errors", 1);
ini_set("error_log", "/home/user/logs/app_xyz.php.log");

Die erste Linien ist zum aktivieren des Loggings aller Errors. (E_ALL in PHP 4.0 oder E_ALL | E_STRICT in PHP 5.0 and höher) Sie zeigen alle Warnungen, Fatal Error, und informationen über alle nicht initialsierten Variablen. Die zweite Linie deaktivert das zeigen der Fehler.

Um dieses Logging zu aktivieren, muss der obenstehende Code nur in den Kopf der entsprechenden PHP Applikation kopiert werden.

Popularity: 11% [?]

Twitter It!
KategorienPHP, Webdesign Tags: , ,

E-Mailadressen verschlüsseln

26. Januar 2009 Kommentare ausgeschaltet

Um E-Mailadressen auf Webseiten zu verschlüsseln gibt es verschiedene Möglichkeiten. Eine davon werde ich hier näher anschauen.

Genutzt wird die Methode von mehreren CMS Systemen. Unter anderem auch von Typo3. Sie besteht aus zwei Teilen. Die E-Mailadresse wird mittels PHP verschlüsselt. Mittels JavaScript wird die Adresse beim Klick darauf entschlüsselt und mittels mailto: Link direkt im Mailprogramm geöffnet.

PHP Teil:

<?
function encrypt_email($addi) {
    $r='';
    $addi='mailto:'.$addi;
    for( $i=0; $i < strlen($addi); ++$i) {
        $n = ord($addi[$i]);
        if( $n >= 8364 ) {
            $n = 128;
        }
        $r .= chr($n+1);
    }
    return "javascript:linkTo_UnCryptMailto('".$r."')";
}

?>

Der JavaScript-Teil:

<script type="text/javascript"> <!--
    function UnCryptMailto( s )
    {
        var n = 0;
        var r = "";
        for( var i = 0; i < s.length; i++)
        {
            n = s.charCodeAt( i );
            if( n >= 8364 )
            {
                n = 128;
            }
            r += String.fromCharCode( n - 1 );
        }
        return r;
    }

    function linkTo_UnCryptMailto( s )
    {
        location.href=UnCryptMailto( s );
    }
// -->
</script>

Der JavaScript Teil wird im Header der Seite eingefügt.

Die Anwendung:

<a href="<? echo encrypt_email("info@example.ch"); ?>">info auf example punkt ch</a>

Popularity: 2% [?]

Twitter It!
KategorienPHP, Webdesign Tags: , ,

PHP ShowCode

23. Januar 2009 Kommentare ausgeschaltet

Wenn man den Inhalt eines Files oder z.B. den Inhalt eines DB-Memofeldes mit Syntax und Zeilennummern ausgeben will, kann man die Funktion ShowCode verwenden:

<?
function showCode($code) {
    $code = highlight_string($code, true);
    $code = explode("<br />", $code);
 
    $i = "1";
    foreach ($code as $line => $syntax) {
        echo "<font color='black'>".$i."</font> ".$syntax."<br>";
        $i++;
    }
}
?>

Die Funktion kann folgendermassen gebraucht werden:

<?
// Ausgeben einer Datei
showCode(openfile($path."$file","r"));

// Ausgeben einer Variablen
showCode($inhalt);
?>

Popularity: 1% [?]

Twitter It!
KategorienPHP, Webdesign Tags: ,

Excel 2007 Dokumente aus PHP erzeugen

20. Januar 2009 Kommentare ausgeschaltet

Am 5. Januar ist die Version 1.6.5 von PHPExcel erschienen. PHPExcel stellt Klassen zum erzeugen und bearbeiten von Excel-Tabellen bereit. So kann man Zellen mit Werten, Formeln, und Hyperlinks füllen. Zellen können benannt und die Schriftart definiert werden. Zudem können Grafiken platziert werden.

Auch ein Passwort Schutz lässt sich mit PHPExcel erzeugen. Die Tabellen können mit den entsprechenden Meta-Informationen für den Autor, Titel und Beschreibung füllen.

Download von PHPExcel

Popularity: 2% [?]

Twitter It!
KategorienPHP, Webservice, Windows Tags:

PHP Ordner löschen

17. Januar 2009 Kommentare ausgeschaltet

Mit folgender Funktion kann man mit PHP Ordner inkl Inhalt löschen oder nur den Inhalt eines Ordners löschen:

<?
// $dir = the target directory
// $DeleteMe = if true delete also $dir, if false leave it alone
//
// SureRemoveDir('EmptyMe', false);
// SureRemoveDir('RemoveMe', true);


function SureRemoveDir($dir, $DeleteMe) {
    if(!$dh = @opendir($dir)) return;
    while (false !== ($obj = readdir($dh))) {
        if($obj=='.' || $obj=='..') continue;
        if (!@unlink($dir.'/'.$obj)) SureRemoveDir($dir.'/'.$obj, true);
    }

    closedir($dh);
    if ($DeleteMe){
        @rmdir($dir);
    }
}
?>

gefunden auf php.net

Popularity: 18% [?]

Twitter It!
KategorienPHP Tags:
Get Adobe Flash playerPlugin by wpburn.com wordpress themes