PHPGangsta - Der praktische PHP Blog

PHP Blog von PHPGangsta


Linkpool Nummer 21

without comments

Dieses Mal sind es ein paar mehr Links geworden, damit solltet ihr locker über das Wochenende kommen.

Die guten Entwickler drücken häufig F5:

Herausfinden ob das PHP Script über eine TTY-Schnittstelle aufgerufen wurde:

Ein „Open Platform as a Service“-Projekt mit PHP Support, muss ich mir dringend mal im Detail anschauen:

Der Streit zwischen Heise und Facebook über 2-Klick-Buttons:

Sehr interessanter kritischer Artikel über das PHP 5.3.7 Desaster, fehlschlagende Unit-Tests und den Entwicklungsprozess von PHP (Englisch):

PHPStorm 2.1.4 released:

Arbeiten mit PHAR-Archiven:

Umfangreiche Artikelserie über PHP Unit-Testing:

OAuth mittels der PECL Extension Oauth:

Written by Michael Kliewe

September 3rd, 2011 at 12:22 pm

Posted in PHP

Tagged with , ,

Animierte CAPTCHAs und GIFs selbst erstellen

with 10 comments

Da ich noch nie mit PHP ein animiertes GIF erstellt habe wollte ich das mal testen. Um auch etwas halbwegs sinnvolles zu tun habe ich eine Klasse erstellt die animierte CAPTCHAs erstellen kann.

Bei animierten GIFs und PHP gibt es im Prinzip 2 Lösungen: Man nutzt Imagick, oder man baut das GIF-Format binär nach. Für letzteres gibt es bereits die Klasse GIFEncoder, die ich auch hier nutze. Die GD-Funktionen von PHP bieten leider keine Möglichkeit (mehr), animierte GIFs zu erstellen.

Das Projekt AnimatedCaptcha liegt auf Github. Man übergibt der Klasse eine Zeichenfolge, stellt ein paar Parameter ein und erhält als Ergebnis ein animiertes GIF. Ich habe ein Plugin-System eingebaut, sodass weitere Plugins schnell erstellt werden können. Ich habe bereits 3 angelegt:

MovingRectangle:

Snow:

RollingBall:

Diese 3 Plugins haben jeweils weniger als 40 Zeilen Code. Hier 2 Beispiele der Benutzung:

Weiterlesen »

Written by Michael Kliewe

September 2nd, 2011 at 10:37 am

Die Reporting-Funktion der Content-Security-Policy (CSP)

with 11 comments

CSP hatte ich vor fast 2 Jahren bereits vorgestellt, mittlerweile hat es eine gute Verbreitung gefunden, sodass wir uns nochmals die Details anschauen. CSP ist ein Header, den der Server an den Browser schickt, und darin festlegt, von wo Javascripte, Bilder, CSS, Media-Dateien und mehr geladen werden dürfen. Mit sinnvollen Einstellungen ist es möglich, Cross Site Scripting (XSS) sowie Clickjacking zu verhindern, eine dieser essenziell wichtigen Einstellungen ist das Verbot von Inline-Javascript. Falls also ein Angreifer Javascript beispielsweise in die Datenbank einfügen kann, und bei der Ausgabe nicht oder falsch escaped wird, wird das Inline-Javascript das der Angreifer platziert hat nicht ausgeführt, XSS ist effektiv unterbunden.

In der Apache Konfiguration kann das beispielsweise so aussehen:

<VirtualHost *:80>
    DocumentRoot /path/to/wwwroot
    ServerName domain.de

    Header add X-Content-Security-Policy "allow 'self'; img-src images.domain.de; script-src static.domain.de;"
</VirtualHost>

oder hier mittels PHP gesetzt:

<?php
header("X-Content-Security-Policy: allow 'self'; img-src images.domain.de; script-src static.domain.de;");

Sollten nun Bilder oder Javascripte eingebunden sein die nicht von den angegebenen Domains kommen wird der Browser sie blockieren und nicht laden. Es gibt neben img-src und script-src auch noch frame-src, xhr-src und weitere.

Weiterlesen »

Written by Michael Kliewe

August 30th, 2011 at 8:52 am

Zend_Config_Ini, Arrays und die Vererbung

with 8 comments

Ich mag .ini Konfigurationsdateien, und deshalb nutze ich auch bei Zend Framework Projekten immer die application.ini . Damals habe ich gelernt dass man Arrays so definiert:

[production]
...
server.0 = 192.168.0.1
server.1 = 192.168.0.2

[development : production]
…
server.0 = 10.0.0.1
server.1 = 10.0.0.2

Im ZendFramework Code kann ich dann das server-Array so nutzen:

Weiterlesen »

Written by Michael Kliewe

August 29th, 2011 at 9:41 am

Präsentationen der FrOSCon 2011

with 4 comments

Letztes Wochende fand die alljährliche FrOSCon in Sankt Augustin statt. Es gab einen speziellen PHP Raum, und demnach auch einige PHP Talks sowie einige verwandte Präsentationen in anderen Räumen, ich versuche die interessantesten hier aufzulisten:

Singletons in PHP – Why they are bad and how you can eliminate them from your applications
Gordon Oh.

Session Management für skalierbare Web Projekte
Martin Schönert

Modern PHP graphics with Cairo
Michael MacLean

Weiterlesen »

Written by Michael Kliewe

August 27th, 2011 at 11:43 am

Posted in PHP

Tagged with , , ,