Allgemein, Arbeit

Unit tests for SF2 with IntelliJ / PHPStorm and Vagrant

you require a working Symfony instance running through Vagrant.

Prerequisites

1) Install Remote Interpreter

remote_php

2) Add a Remote PHP Interpreter.

use vagrant ssh-config to get required information

Screen Shot 2016-02-17 at 14.11.57

3) Setup Path Mapping (Deployment Server)

Screen Shot 2016-02-17 at 14.47.11

 

4) Setup PHPUnit

Screen Shot 2016-02-18 at 00.04.27.png

create a file in app/phpunit.php and use it as a custom loader for phpunit:

<?php

if (!defined('PHPUNIT_COMPOSER_INSTALL')) {
    define('PHPUNIT_COMPOSER_INSTALL', __DIR__ . '/autoload.php');
}

require_once 'autoload.php';

this allows you to use @runInSeparateProcess till https://youtrack.jetbrains.com/issue/WI-29458 is fixed

 

 

Now everything should be setup and you can run the tests in Vagrant 🙂

Uncategorized

SVN Hooks

Hi there, within a big php project you make typos. here is a small prehook script for svn that will actually prevent commits with several common and annoying mistakes:

  • Spaces in filenames
  • Spaces prior to the first <?php tag
  • PHP Short Tags
  • windows line endings

[bash]#!/bin/bash

# configuration
DO_DOS_FILE_CHECK=1
DO_SPACE_FILE_CHECK=1
DO_PHP_SHORT_TAG_CHECK=1
DO_SPACE_BEFOR_PHP_CHECK=1

REPOS=”$1″
TXN=”$2″

SVNLOOK=/usr/bin/svnlook
TMPFILE_ORIG=/tmp/svnhook_$TXN
TMPFILE_UNIX=/tmp/svnhook_unix_$TXN

FILES=`$SVNLOOK changed “$REPOS” -t “$TXN” | sed -r ‘s/^[D].*$//;s/^[AU]{1,2}s+//’`
DOS_FILES=””
SPACE_FILES=””
PHP_SHORT_TAG_FILES=””
SPACE_BEFOR_PHP_FILES=””

IFS=$’n’

for FILE in $FILES
do
LAST=${FILE#${FILE%?}}

# echo “FILE = ‘$FILE'” >&2

if [ “$LAST” = “/” ]; then
continue
else
if [ -n $DO_SPACE_FILE_CHECK ]; then
# space in filename check
SPACE_VIOLATIONS=`echo “$FILE” | grep -l ” “`

if [ -n “$SPACE_VIOLATIONS” ]; then
SPACE_FILES=”$SPACE_FILESn$FILE”
continue
fi
fi

$SVNLOOK cat “$REPOS” -t “$TXN” “$FILE” > $TMPFILE_ORIG || continue

if [ -n $DO_DOS_FILE_CHECK ]; then
# check windows line endings
VIOLATIONS=`grep -cIls $’r$’ $TMPFILE_ORIG` >&2

if [ -n “$VIOLATIONS” ]; then
DOS_FILES=”$DOS_FILESn$FILE”
fi
fi

if [ -n $DO_PHP_SHORT_TAG_CHECK ]; then
# check php short tags
VIOLATIONS=`grep -rn ‘&2
if [ -n “$VIOLATIONS” ]; then
PHP_SHORT_TAG_FILES=”$PHP_SHORT_TAG_FILESn$FILE: $VIOLATIONS”
fi
fi

if [ -n $DO_SPACE_BEFOR_PHP_CHECK ]; then
# check for space prior to php tag
VIOLATIONS=`head -n 1 $TMPFILE_ORIG | grep ‘^s&2
if [ -n “$VIOLATIONS” ]; then
SPACE_BEFOR_PHP_FILES=”$SPACE_BEFOR_PHP_FILESn$FILE”
fi
fi
fi
done

rm -f $TMPFILE_ORIG
rm -f $TMPFILE_UNIX

if [ “$DOS_FILES” != “” ] || [ “$SPACE_FILES” != “” ] || [ “$SPACE_BEFOR_PHP_FILES” != “” ] || [ “$PHP_SHORT_TAG_FILES” != “” ]; then
echo -e “n” >&2
if [ “$DOS_FILES” != “” ]; then
echo “ONLY UNIX LINEENDINGS ALLOWED!!!” >&2
echo “the following file contains Windows / Mac Lineendings:” >&2
echo -e $DOS_FILES >&2
echo -e “n” >&2
fi

if [ “$SPACE_FILES” != “” ]; then
echo “SPACES ARE NOT ALLOWED IN FILE / FOLDER NAMES!!!” >&2
echo “the following file contain spaces:” >&2
echo -e $SPACE_FILES >&2
echo -e “n” >&2
fi

if [ “$SPACE_BEFOR_PHP_FILES” != “” ]; then
echo “SPACES ARE NOT ALLOWED BEFOR THE PHP TAG IN THE FIRST LINE!!!” >&2
echo “the following file contain spaces:” >&2
echo -e $SPACE_BEFOR_PHP_FILES >&2
echo -e “n” >&2
fi

if [ “$PHP_SHORT_TAG_FILES” != “” ]; then
echo “SHORT PHP TAGS ARE NOT ALLOWED!!!” >&2
echo “the following file contain short tags” >&2
echo -e $PHP_SHORT_TAG_FILES >&2
echo -e “n” >&2
fi

exit 2
fi

# All checks passed, so allow the commit.
exit 0
[/bash]

Uncategorized

42

Heute ist es wieder mal wichtig 🙂 http://www.towelday.org/

Die neue Webseite von St. Vitalis geht auch gut voran, die Administration ist großteils fertig und im Frontend gehts auch halbwegs weiter. http://neu.vitalis.at

Auch hab ich zum ersten Mal Google Apps ausprobiert, muss sagen es geht unkompliziert und schnell :). Einziger wirklich großer Nachteil ist wohl das man zwar seine Eigene Domain verwenden kann, jedoch von dort immer auf eine mail.google.com URL umgeleitet.

Uncategorized

Die Zeit…

Und schon wieder so ein Titel. Die Zeit vergeht leider wirklich viel zu schnell. Und man hat viel weniger Zeit als man gerne hätte.

Ich versuche seit längerem Zeit zu finden ein Installscript für Trac zu schreiben – und es ist einfach keine Zeit dafür.

Gibt aber auch erfruliches – die Stadtpfarre St. Vitalis wird nun bei mir gehostet (die alte Seite ist von mir, schreib auch grad an einer neuen…). Die Seite vom Elternverein ist noch immer nicht umgezogen – liegt aber auch nicht in meiner hand 😦 – trotzdem schade wenn man eine seiner Seite so lange offline sieht.

Culox geht langsam voran und nebenbei habe ich die Seite von einem Freund angefangen. Wird aber noch eine weile dauern bis etwas sinnvolles zu Tage kommt.

Uncategorized

Paintball und Photos

Mittwoch Abend war ich seit langem endlich wieder einmal Paintball spielen. Nach einigen Pannen zu Beginn (zuerst war die Batterie meiner ION leer, und dann die meines Hoppers…) war das ganze wirklich lustig. Wir haben zum Ersten mal auch Fotos und Videos während der Spiele gemacht (Link).

Gestern habe ich dann eine kleine Foto Gallerie geschrieben, die nicht so “aufgeblasen wie Gallery2 oder ähnliches ist. Nun heists nur noch Fotos in den Ordner reinkopieren, mit einem klick die Thumbnails generieren zu lassen und die Gallerie zu geniesen.

Wer das Gallerie Script haben will: Small Gallery – es gibt ein paar Variablen die man anpassen kann – sollte aber “out-of-the-box” gehen.

Uncategorized

Mailscript v2

Soeben ist mein neues Mail Script fertig geworden. Es bringt deutliche Verbesserungen in der Handhabung sowie zusätzliche Funktionen um das Senden eines Return-Paths von PHP aus zu ermöglichen. So kann man nun den 5. Parameter von mail() verwenden um den Return-Path anzugeben.

mail(‘[email protected]’,’title’,’text’,’From: [email protected]’,’[email protected]’);

Das Script kann über die sendmail=”/var/server_email.sh -o 1 -m [email protected]” Einstellung aktiviert/eingestellt werden. Zum Verständnis entweder

server_email.sh -h aufrufen

oder sich den Quelltext ansehen.

Folgende Funktionen sind implementiert:

  • Original Email zustellen / blockieren
  • Kopie an andere Email Adresse senden
  • Quelltext des Emails an ein PHP Script weiterleiten
  • mittels mail() den Return-Path angeben

Download Mail Script v2

Viel Spass damit.

Uncategorized

Die Zeit…

Die Tage vergehen, 2008 ist im grunde schon vorbei. Für mich ist in diesem Jahr viel weiter gegangen – Culox hat deutliche Fortschritte gemacht, und die Uni lief und läuft im großen und ganzen auch gut.

Für mich hat sich heuer entschieden das ich mich mehr in Richtung Internet Security fortbilden will! Die Teilnahme beim iCTF hat mir einen ordentlichen Schubs in diese Richtung gegeben.

Für alle die das hier lesen – wünsche einen guten Rutsch und ein Frohes neues Jahr 😀

Uni, Arbeit, Sonstiges

PHP über Kommandozeile

PHP-CLI, klein aber fein. Hin und wieder gibt es Scripte die einfach nicht im Browser aufgerufen werden können. Sei es weil irgendein Proxy dazwischen die Verbindung trennt oder weil man einfach lieber in der Kommandozeile Scripte ausführt 😀

Leider geht nicht alles wie man es sich wünscht… Spätestens der erste Versuch mit GET Parametern zu arbeiten führt zur Verzweiflung. Netterweise kann man jedoch die Parameter der Kommandozeile auslesen und diese je nach Lust und Laune in das eine oder andere Array schreiben. Dafür hab ich heute ein kleines Script geschrieben das sicher noch so manchem helfen wird.

PHP CLI Script

Uni, Arbeit, Sonstiges

UCSB iCTF 2008

Nach langer Zeit schreib ich nun doch wieder einmal was…

Gestern war der UCSB iCTF 2008 (http://www.cs.ucsb.edu/~vigna/CTF/) – eine groß angelegte Security Übung die heuer komplett anders als die Jahre davor aufgebaut war. Für mich war es die erste Teilnahme an einer solchen Übung, es hat Spaß gemacht und ich freu mich schon auf nächstes Jahr. 🙂

Wie das ganze los ging – kurz nach 5 Uhr bekamen wir ein Image, welches gegenüber den Jahren davor (ca 700Mb) sehr viel kleiner war (100Mb). Dauerte nicht allzulange bis sich der Inhalt starten lies und sich ein Freedos mit einem spärlichen Text zeigte. Dort wurde nur erwähnt das es um die Webseite softerror.com ging – mehr Infos gab es nicht. Also mit diesen Infos zogen wir los – ebenso wie alle anderen Teams die Sicherheitslücken und oder weitere Hinweise auf dieser Webseite suchten.

Nicht viel später kam eine Rundmail das hier eine falsche Webseite von uns attakiert wurde (naja sowas kann passieren, für den Sysadmin war es sicher ein Schock).

liste

Das war dann die “echte” Seite – ebneso kann in etwa zur selben Zeit die Info zum Hintergrund des Geschehens:

THE INTRO

It’s 9am and somebody is franticly knocking on your door…

You open the door and Jack Bauer is right there on your doorstep looking at
you with spirited eyes. He screams “Somebody set up us the bomb!”

You don’t understand and reply: “What you say!”, and then you slap Jack
several times to get him out of his hysteric blubbering. After a few seconds
he seems to regain control and he starts talking…

“There is a nuclear device that is going to explode unless we stop it. We have
only eight hours or so, until 5pm PST. The bomb has been set by a terrorist
group called Softerror.com. We have been watching them for months. We knew
they were up to something big. But we never would have imagined something of
this size.”

You are still incredulous and ask: “So what do you want from me?”

Jack says: “The bomb can only be stopped by breaking into the Softerror.com
network and neutralizing the program that will detonate the bomb. I heard that
you participated in hacking competitions at UCSB and proved to be a l33t
h4x0r. Now it’s time to prove it for real! You need to stop the bomb!”

(…)

Damit ging das eigentliche Geschehen los – zuerst gingen wir auf den Webserver, nach etwa einer Stunde hatten wir bereits ein Formular kreiert mit dem wir beliebige system() aufrufe durchführen konnten, von da an war es nur noch ein kleiner Schritt bis wir einen gültigen SSH Account hatten (Public Key ist toll).

Vom Webserver ging es dann an das Finanznetz und an das Entwicklungsnetz – Stück für Stück kamen wir voran und es machte ordentlich Spaß :). Die Bombe die in einem seperaten Netz (das nur vom Finanznetz aus zugänglich war) verfügbar war haben wir leider knap nicht mehr entschärfen können.

Neben diesen Hauptquests gab es jeden Menge Nebenquests die von Reverse Engineering über Forensics bis hin zu Binaries und Rätseln alles boten.

Danke an Giovanni Vigna vom UCSB der diesen Wettbewerb organisiert und vorbereitet hat.