Entries tagged with “PHP”.


MeineLeude Logo

“Meine Leude” ist eine kostenlose Internetplattform zur Bildung von sozialen Netzwerken im deutschsprachigen Raum. Sie wurde im Oktober 2006 von Stefan Maischner entwickelt und liegt mittlerweile in der beta5 vor.

Auf jeden Fall ist MeineLeu.de ein absoluter Surftipp!

VS.PHP

Ein sehr guter PHP Editor inklusive Debugging-, Deployment- und (Smarty)-Template-Unterstützung heißt VS.PHP von Jcx.Software.

Außerdem gibt es 4 verschiedene Versionen:

    1. VS.Php Standalone Edition
      VS.Php for Visual Studio 2005
      VS.Php for Visual Studio .Net 2003
      VS.Php for Visual Studio .Net

Besonders die Integration in Visual Studio ist sehr interessant.

Das sagt Jcx.Software dazu:

If you are a .Net developer you may wonder why VS.Php? Php is one of the most popular languages for developing web applications. In fact, the Php community has the largest pool of rich open source applications, frameworks and resources to make your development life easier. VS.Php lets those who enjoy using Visual Studio use their favorite IDE for Php development. VS.Php also provides many unique features by leveraging the Visual Studio IDE like Php/Javascript debugging.

[Quelle: Jcx.Software]

Über die Sicherheit der Daten innerhalb einer Webanwendung sollte man sich stets Gedanken machen. übergibt man POST-Variablen ungeprüft der Anwendung kann die Sicherheit bereits gefährdet sein.

Angreifer können unter Umständen mittels SQL-Injektion Anfragen verändern oder neue erstellen.

Meine Schutzmaßnahme in einer PHP-Anwendung mit MySQL besteht in einer kleinen Hilfsfunktion, die alle Variablen, die in einer Anwendung verarbeitet werden für den SQL-Syntax valide terminiert:


// sanitize strings for db queries
function sanitize_sql($value) {
if (get_magic_quotes_gpc()) {
$value = stripslashes($value);
}
return mysql_real_escape_string($value);
}

In jeder Datenbankanfrage, der Variablen übergeben werden, bereinigt diese Funktion eventuellen Schadcode mittels Terminierung:


// get userID
function check_user($username, $userpass) {
$sql="SELECT userid
FROM mars_users
WHERE username='".$this->sanitize_sql($username)."' AND
userpass='".$this->sanitize_sql(md5($userpass))."' LIMIT 1";
$result=mysql_query($sql) or $this->errorLog($this->page, mysql_error());
if (mysql_num_rows($result)==1):
$resultarray=mysql_fetch_assoc($result);
return $resultarray['userid'];
else:
return false;
endif;
}

In PHP selbst kann man auch Variablen mittels Regular Expressions prüfen. Eine einfache Funktion zur Überprüfung eines Strings könnte so aussehen:


// sanitize string
function sanitize_string($value) {
$value=preg_replace("/[^\w\040\-_.!?]/","",$value);
$value=trim($value);
return $value;
}

Dazu bietet sich noch die Validierung von Formulareingaben mittels JavaScript an, wie im Beitrag vorher erwähnt.

Ein beeindruckendes und leistungsstarkes Framework ist das PRADO PHP Framework. Es ist besonders für die Entwicklung großer PHP-Projekte geeignet und besitzt ein ereignisgesteuertes sowie komponentenbasiertes Konzept.

Hier noch ein paar Infos:

* Open Source
* Object-oriented and highly reusable code
* Event-driven programming
* Separation of presentation and logic
* Configurable and pluggable modular architecture
* Feature-rich Web components: HTML input controls, validators, datagrid, wizard…
* Built-in support of internationalization (I18N) and localization (L10N)
* Seamless Ajax support
* Customizable and localizable error/exception handling
* Multiway message logging with filters
* Generic caching modules and selective output caching
* Extensible authentication and authorization framework
* Security measures: cross-site script (XSS) prevention, cookie protection…
* XHTML compliance
* Rich documentation and strong userbase

Quelle: [PRADOSOFT]

Neulich erst entdeckt:
Es gibt einige PHP-Patterns-Seiten, die gute Informationen bereitstellen.

Also unbedingt in die Bookmarks aufnehmen!

Wie man den Status von HTML Forms mit php abfragt zeigt folgendes Beispiel:

Checkbox

HTML:


<input type="checkbox" onclick="do();" name="chkTest" />

php:

// get checkbox status
if (array_key_exists('chkTest', $_POST) && $_POST['chkTest'] != null):
$value = 1;
else:
$value = 0;
endif;

Radiobutton

HTML:


<input type="radio" onclick="do();" value="1" name="radTest" />
<input type="radio" onclick="do();" value="2" name="radTest" />
<input type="radio" onclick="do();" value="3" name="radTest" />

php:

// get checkbox status
if (array_key_exists('radTest', $_POST) && $_POST['radTest'] != null):
$value = $_POST['radTest'];
endif;