Archive for the ‘Security’ Category

XSS (Cross Site Scripting) Prevention Cheat Sheet

Sonntag, Mai 8th, 2011

Ein echt gutes Cheatsheet:
https://www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sheet

Gratis Websecurity Tools

Mittwoch, April 14th, 2010

Vor einigen Monaten habe ich über die Sicherheit von Webapplikationen gefunden. Hier ist eine interessante Webseite dazu: 10 Gratis Tools um die Sicherheit einer Website zu testen (gegen SQL-Injection, Cross-Site-Scripting, u.a.).

http://www.webresourcesdepot.com/10-free-web-application-security-testing-tools/

Browser Historie lesen

Mittwoch, April 14th, 2010

Mit einem kleinen Trick kann man auslesen, ob der Besucher deiner Website eine bestimmte URL schon besucht hat. Die Browserhersteller kennen das „History Stealing“ schon lange, tun aber nichts dagegen.

So gehts:

<pre>
function hasLinkBeenVisited(url) {
var link = document.createElement('a');
link.href = url;
document.body.appendChild(link);
if (link.currentStyle) {
var color = link.currentStyle.color;
if (color == '#ff0000')
return true;
return false;
} else {
link.setAttribute("href",url);
var computed_style = document.defaultView.getComputedStyle( link, null );
if (computed_style) {
if (computed_style.color == 'rgb(255, 0, 0)')
return true;
}
return false;
}
}
</pre>

Dabei muss per CSS die Farbe rot für besuchte Links definiert sein.

Code von http://www.merchantos.com/makebeta/tools/spyjax/

PHP-Datenbankzugriff über PDO

Mittwoch, März 3rd, 2010

Wie in einem anderen Posting erklärt ( http://donauweb.at/ebusiness-blog/2009/11/15/sicherheit-security-eines-webshops-verbessern/ ), gibt es bei PHP keine 100% Maßnahmen gegen SQL-Injection mit konventionellem Datenbankzugriff. Nur parametrisierte SQL-Befehle bieten mehr Sicherheit. Es ist daher empfehlenswert, nur noch PDO für Datenbankzugriffe zu verwenden.

Um Datenbankzugriffe mit PDO zu vereinfachen habe ich eine Bibliothek-Klasse geschrieben für den Zugriff auf eine Datenbank mittels PDO. Diese Klasse bietet Funktionalitäten wie bei ADODB. Die wichtigsten sind:

  • pdoGetAll($sql, $data) und pdoGetRow($sql, $data) liefern ein oder mehrere Datensätze als Array zurück.
    Der SQL-Befehl kann Parameter beinhalten, deren Werte in $data mitgeliefert werden.
    zB $sql = „select * from table where id=:id“
  • pdoGetAssoc($sql, $data) holt das gleiche Resultat wie pdoGetAll, jedoch wird die erste Spalte zum Index vom Array. Dadurch ist das Lesen von zB definierten ID-Werten nachher wesentlich einfacher.
  • pdoInsUpd($table, $data, $insert_or_update, $where) erstellt einen INSERT oder UPDATE SQL-Befehl an Hand der übergebenen Parameter und führt diesen Befehl aus.

Die Klasse kann als OpenSource downgeloadet werden.

Sicherheit/Security eines Webshops verbessern

Sonntag, November 15th, 2009

Wenn man einen Webshop laufend beobachtet, dann findet man immer wieder Angriffe auf den Webshop. Hacker versuchen, Schwachstellen des Webshops auszunutzen. Hier folgen einige Methoden, wie Hacker versuchen einzubrechen und was man dagegen unternehmen kann.

Angriffe auf Webshops und Schutz dagegen

Erklärung von Anriffsmöglichkeiten
http://www.suspekt.org/2009/06/16/dutch-php-conference-the-slides/

Viele interessatnte Artikel über Sicherheit
http://entwickler.de/zonen/portale/psecom,id,125,nodeid,.html
http://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet

Wie funktioniert SQL-Injection genau?
http://www.securiteam.com/securityreviews/5DP0N1P76E.html
http://unixwiz.net/techtips/sql-injection.html

Angriffserkennung in PHP
http://php-ids.org/

XSS-Tricks
http://ha.ckers.org/xss.html

XSS-Schutz in PHP
http://wiki.flux-cms.org/display/BLOG/XSS+Prevention

Die wohl beste Bibliothek zur Prüfung von Form-Eingaben
HtmlPurifier

top-15-free-sql-injection-scanners

Sicherheitsberater, die Angriffstests durchführen (Penetration Test)
(ich habe einige kontaktiert, bei diesen hatte ich ein gutes Gefühl)

http://www.redteam-pentesting.de
https://www.mark-semmler.de
http://www.internet-sicherheit.de
http://www.it-sec.de/