Bananas Development Blog: share your thoughts

So nicht. SQL injection.

So etwas gibt es in jeder Programmiersprache, nur das PHP sehr weit verbreitet ist und somit einen große Angriffsfläche bietet.

Wei weit verbreitet und leider immer noch nicht bei jedem Entwickler angekommen, veranschaulicht diese Suche auf Github.

mysql_query and the $_GET variable

Viel spass damit, vielleicht wird der eine oder andere darauf nun aufmerksam oder die Community wird zusammenarbeiten und pull requests zum fixen des Problemes erstellen.


OOP ? Hat doch nur Vorteile.

OOP ist ja eine gute Sache, oder ?

Was man damit tolles machen kann, zeigt dieses schöne Beispiel:
This awesome yet simple and pragmatic PHP library performs an addition of two numbers.

Wäre doch auch zu einfach wenn man 1+1 einfach so rechnen könnte ;-)



If PHP Were British

Darüber sollte man sich mal Gedanken machen. Programmiersprachen sollten Manieren haben.

If PHP Were British

Denn so etwas liest sich doch viel besser, oder ?
what_about (£variable) {
    perhaps £possibility:
        //Code here
        splendid;
    perhaps £other_possibility:
        //Code here
        splendid;
    on_the_off_chance:
        //Code here
        splendid;
}


via: reddit/r/php


Nun wird es durch den Dreck gezogen

Nach den letzten Fällen von Bugs die nicht hätten sein sollen, wird nun PHP immer mehr durch den Dreck gezogen. Nicht, dass die Sprache mehr Bugs hätte als andere aber nun wird dies öffentlich ausgeschlachtet.

Mal sehen wie die Macher von PHP darauf regieren. Hoffentlich nehmen sie das mal ernst und nicht so leichtfertig wie beim letzten Patch, der falsch war...

Ungepatche Lücke in aktueller PHP-Version
Der Hacker Maksymilian Motyl hat einen Exploit veröffentlicht, der eine kritische Lücke in der aktuellen PHP-Version 5.4.3 demonstrieren soll. Die Schwachstelle befindet sich anscheinend in der Funktion com_print_typeinfo() und ist laut Motyl nur auf einem 32-bittigen Windows-System ausnutzbar.


via

Ach PHP

Die Sprache kann vieles und ist für Ihre Einsatzgebiete einwandfrei. Leider wird mir in der letzten Zeit zu viel geschlampt....

PHP patcht schnell, aber nicht gründlich
Die am gestrigen Donnerstag veröffentlichten Updates auf die PHP-Versionen 5.3.12 und 5.4.2 sind fehlerhaft. Darauf weisen die Entdecker der Schwachstelle hin, welche eigentlich durch die Updates behoben werden sollte.


So kann das nicht weiter gehen....


Wettern über PHP

Ach ja, PHP ist schon die Qual der Wahl wenn es um Anwendungen geht, die über das HTT-Protokoll arbeiten.

Leider ist PHP nicht das Beste wenn es um Genauigkeit geht. Es finden sich immer wieder Fehler die eigentlich nicht da sein sollten.

Large HTTP request Content-Length header values result in failed malloc() call
wrong equality of string numbers

Und hier noch ein längerer Artikel über das Design in PHP:
PHP: a fractal of bad design
PHP is an embarrassment, a blight upon my craft. It’s so broken, but so lauded by every empowered amateur who’s yet to learn anything else, as to be maddening. It has paltry few redeeming qualities and I would prefer to forget it exists at all.



Javascript in PHP ?!

Ach du Schei*e...

V8js in PHP

Was kommt als nächstes ??
Reicht GOTO nicht schon ?


...

PS: #61095 PHP can't add hex numbers

...

Haskell ich komme !


Suhosin und das memory_limit

Argh, das hätte man wissen sollen...

suhosin.memory_limit
Suhosin changes this fact and disallows setting the memory_limit to a value greater than the one the script started with, when this option is left at 0


Erspart so manche verzweifelte Suche nach einem "Fehler" ...

PHP ein wenig sicherer machen

Jede Programmiersprache hat Ihre Tücken und Fehler. Bei PHP ist das nicht viel anders.

Securing PHP
( Mirror )

PHP-Reboot

Rémi Forax will mit PHP-Reboot eine der populärsten Programmiersprachen neu erfinden. Er verspricht weniger $-Zeichen und Semikolons und Sicherheit von Hause aus.

Der Ansatz ist ja gar nicht mal so schlecht...

Rémi Forax, Java-Entwickler und Maître de Conférences an der Universität Marne-la-Vallée, arbeitet mit PHP-Reboot an einer Programmiersprache, die die Philosophie von PHP weiterführen, aber mit modernen Ansätzen verbinden soll. Umgesetzt wird PHP-Reboot auf Basis der Java Virtual Machine.

WTF ?
Wäre es nicht besser Java zu verbessern, und sicherer zu machen ?

Rémi Forax will PHP neu erfinden

Also ich sehe darin keine Vorteile...

Multiple DB Connections mit PHP

Sollte man mal mehrere Datenbank Verbindungen in einem Script benötigen sollte man an folgendes denken:

Sind die Datenbanken auf ein und dem selben Server ( der gleiche Host ) und der Benutzer UND das Passwort sind für beide Verbindungen gleich, DANN bekommt man Probleme.
Denn DANN werden die Abfragen immer auf die letzte Verbindung angewandt, egal ob der link_identifier richtig angegeben wird oder nicht.

If you are trying to open multiple, separate MySQL connections with the same MySQL user, password, and hostname, you must set $new_link = TRUE to prevent mysql_connect from using an existing connection.

$db1 = mysql_connect($dbhost, $dbuser, $dbpass);
$rv = mysql_select_db($dbname1, $db1);
$db2 = mysql_connect($dbhost, $dbuser, $dbpass);
$rv = mysql_select_db($dbname2, $db2);

wird zu:

$db1 = mysql_connect($dbhost, $dbuser, $dbpass);
$rv = mysql_select_db($dbname1, $db1);
$db2 = mysql_connect($dbhost, $dbuser, $dbpass, TRUE);
$rv = mysql_select_db($dbname2, $db2);


Die Lösung ist also, dass man das Erstellen einer neue Verbindung erzwingt. Was nicht sehr tolle ist wenn man performance braucht. Aber da kann man ja verschiedene Benuzter anlegen.

Und so was erfährt man erster aus den Kommentaren.....


E-Mail validation ist eigentlich unnötig

Sobal man von dem Benutzer eine E-Mail Adresse braucht, steht man vor dem "Problem" ob die Eingabe nun wirklich eine richtige E-Mail Adresse ist.

Als erstes wird man ja versuchen anhand einer Analyse der Eingabe festzustellen ob es eine korrekt formatierte E-Mail Adresse ist. Danach noch herausfinden via ping etc. ob die Domain vorhanden ist.

Leider gibt es bei der Überprüfung der Eingabe ein Problem.
Es sind viele Methoden im Umlauf die meinen sie könnten 100% testen ob die Eingabe eine E-Mail Adresse ist.

Tja, aber solche Zeichen sind in einer E-Mail Adresse auch gültig !!!
! $ & * - = ^ ` | ~ # % ' + / ? _ { }

Um Grunde sind es viel mehr Zeichen wenn sie richtig maskiert sind !

Also lassen wir diese Überprüfung am besten Falle weg und senden einfach eine Kontroll E-Mail.

Email address validation: please stop
I Knew How To Validate An Email Address Until I Read The RFC

In SilverStripe die Vergabe eines sinnvollen Seitentitels erzwingen

Da nicht jeder Redakteur eine Ahnung von SEO hat und diese auch nur Menschen sind, kann es in SilverStripe zu Problemen mit den Seitentiteln kommen.

Wenn man eine neue Seite anlegt bekommt diese automatisch einen Namen. Diesen muss man leider nicht ändern und somit können viele Seiten entstehen die den selben Seitentitel haben und auch noch eine fortlaufende URL.

Alles nicht so dolle.

Wie man diese Problematik leicht lösen kann habe ich hier beschrieben.

Ausgabe auf der Kommandozeile in Farbe mit PHP

Jeder hat sicherlich nicht nur PHP Scripte erstellt, die über den Apache ablaufen, sondern auch Scripte dir nur auf der Kommandozeile laufen und nicht für den Browser gedacht sind.

Oft lässt man sich ja das Ergebnis oder Statusmeldungen ausgeben. Man kann diese mit Hilfe vo ASCII Zeichen formatieren aber mit Farbe sieht das schon besser aus.

Farben in der Kommandozeile nutzen

PHP Funktionen begrenzen

PHP und wie andere Sprachen habe eine Fülle an funktionen.

Es werden aber nicht immer alle gebraucht. Manche sind je nach Einsatzort sogar "gefährlich".

In PHP gibt die Möglichkeit solche Funktionen zu deaktivieren.

Gefährliche PHP-Funktionen ausschalten

Weiterhin gibt es dazu noch das Suhosin Projekt. Damit kann man sich noch ein wenig mehr Sicherheit geben lassen.