Archiv für die ‘Programmierung’ Kategorie.
1. Februar 2009 von Haertzi
Cross Site Scripting oder kurz XSS ist die Bezeichnung für das Ausnutzen einer Sicherheitslücke von Webanwendungen. Hierbei wird nicht vertrauenswürdiger Quellcode in vertrauenswürdige Elemente der Webanwendung eingebunden, um den Code letztendlich als vertrauenswürdig anzusehen.
Das Scripting von Cross Site Scripting kommt von Javascript, durch das hauptsächlich Cross Site Scripting durchgeführt wird.
Ein einfaches Beispiel sind die Kommentarfelder, die es auf vielen Webseiten gibt. Fügt man dort
<script type=“text/javascript”>alert(“XSS”);</script>
ein und der Kommentar wird nicht überprüft, so erscheint bei jedem Aufruf zuerst ein Javascript-Popup, wenn die Webseite für Cross Site Scripting anfällig ist.
Dies kann natürlich auf unterschiedlichste Weise ausgenutzt werden.
Genauere Informationen über Cross Site Scripting gibt es beispielsweise auf http://ha.ckers.org/xss.html bzw. auf Wikipedia.
1. Februar 2009 von Haertzi
SQL-Injection bezeichnet die Möglichkeit durch Benutzereingaben eine Sicherheitslücke im System auszunützen um Daten einer SQL-Datenbank zu verändern oder auszulesen. Dadurch ist es möglich kritische Informationen, wie Benutzernamen und Passwörter, aus der zugrundeliegenden Datenbank auszulesen.
Login-Seiten von Webseiten haben in der Regel ein Benutzereingabefeld und ein Passwortfeld. Wenn die Eingaben der Felder nicht geprüft werden, so kann es z.B. möglich sein, sich ohne gültiges Passwort anzumelden.
Als erstes wird jedoch überprüft, ob die Benutzereingaben überprüft werden. Dies wird durch einen einfachen Slash (‘) im Eingabefeld realisiert.
Beispiel 1:
Wir gehen von dem zugrundeliegenden SQL-Befehl aus:
select FELDER
from TABELLE
where FELD = ‘$name’;
Geben wir nun in das Eingabefeld otto’ ein, so dürfte ohne Prüfung der Eingabe der SQL-Befehl folgendermaßen aussehen:
select FELDER
from TABELLE
where FELD = ‘otto”;
Weiterlesen ‘SQL Injection’ »
7. Oktober 2008 von Haertzi
Die Auswirkungen von Softwarefehlern machen es notwendig an Software hohe Qualitätsansprüche zu stellen. Um den Qualitätsansprüchen gerecht zu werden, muss das Testen ein integraler Bestandteil der Softwareentwicklung sein.
Jedoch wird der Begriff „Testen“ oft falsch interpretiert, Sätze wie:
- Testen ist der Prozess, der zeigen soll, dass keine Fehler existieren.
- Testen soll zeigen, dass ein Programm korrekt arbeitet.
[Myers95] definiert das Testen vielleicht noch besser:
“Testen ist der Prozess, ein Programm mit der Absicht auszuführen, Fehler zu finden.”
Testen soll als zielgerichtete Tätigkeit zum Auffinden von Fehlern verstanden werden. Das Testen kann bis zu 50% der Projektzeit beanspruchen. Bei der Komplexität heutiger Systeme sogar manchmal auch mehr. Der Erfolg des Testens ist aber nicht nur aufgrund der psychologischen und menschlichen Faktoren oft nicht sichergestellt.
Zusätzlich ist zu beachten, dass selbst für sehr einfache Programme fast unendlich viele Testfälle existieren können, die in der Regel nur zu einem kleinen Teil durchgetestet werden können [Myers95]. Es bleibt also nur die Hoffnung, durch die vorhandenen Testfälle alle relevanten Fehler aufgefangen zu haben. Im nächsten Abschnitt werden einige Test-Prinzipien vorgestellt, die die Erfolgsquote des Testens verbessern.
Weiterlesen ‘Theorie der Softwaretests’ »
28. September 2008 von Haertzi
Hier ein Beispiel wie man mit Java aus einer Datei Daten auslesen kann:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
public class FileClass {
public static void main(String[] args) {
try {
File file = new File(“C:\\WINDOWS\\Temp\\subdirectory\\file.txt”);
// read data from file
BufferedReader input = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
String s = input.readLine();
// close reader
input.close();
// write data to stdout
System.out.println(“Result: ” + s);
} catch (IOException e) {
e.printStackTrace();
}
}
}
20. September 2008 von Haertzi
Hier ein kleines Beispiel um in Java Daten in eine Datei zu schreiben:
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileClass {
public static void main(String[] args)
{
try {
File file = new File(“C:\\WINDOWS\\Temp\\subdirectory\\file.txt”);
// create directory and file if it does not exist
if (!file.exists()) {
// create directory if the directory does not exist
new File(“C:\\WINDOWS\\Temp\\subdirectory”).mkdirs();
file.createNewFile();
}
FileOutputStream stream = new FileOutputStream(file);
// write data to file
stream.write(“Test”.getBytes());
// empty data puffer
stream.flush();
// close output stream
stream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
2. September 2008 von Haertzi
Eine While-Schleife oder eine Do-While-Schleife wird in Java nur verwendet, wenn man nicht genau weiß, wie oft die Schleife durchlaufen werden soll. Für die Fälle, in denen man genau weiß wie oft die Schleife durchlaufen wird, gibt es die For-Schleife.
Eine While-Schleife besitzt nur einen boolschen Test, sprich solange die Bedingung wahr ist, wird die Schleife wiederholt. Bei einer Do-While-Schleife wird dieser boolsche Test am Ende ausgeführt, d.h. die Schleife wird zumindest einmal ausgeführt.
int[] array = { 7, 4, 8, 1, 4, 1, 4 };
int count = 0;
while (array.length > count && array[count] != 1)
{
System.out.println(“Element ” + count + “: ” + array[count]);
count++;
}
Hier weiß man nicht vorher, wann die Schleife genau beendet wird, da das Array auch anders initialisiert werden kann.
Weiterlesen ‘Java – While-Schleifen’ »
18. Juli 2008 von Haertzi
Das ungewöhnlichste an VI als Editor ist, dass er zwei verschiedene Modi besitzt. Einen Kommandomodus und einen Editiermodus. Mit den Shortcuts a für append und i für insert kommt man in den Editiermodus. Mit ESC verlässt man den Editiermodus und wechselt in den Kommandomodus.
Hier die wichtigsten Shortcuts auf einen Blick:
Weiterlesen ‘Editor – VI Shortcuts’ »
29. Juni 2008 von Haertzi
In PHP gibt es mehrere Funktionen um Zahlen auf eine bestimmte Anzahl von Nachkommastellen zu beschränken. Diese Funktionen sind: ceil, floor, round, number_format.
Weiterlesen ‘PHP – Zahlen runden’ »
14. Juni 2008 von Staudi
Am 3. Januar 2007 wurde die seit 1999 entwickelte Programmiersprache D fertig gestellt. D versteht sich als Nachfolger der bekannten Programmiersprache C und auch als eine Alternative zu C++. Automatische Garbage Collection, Design by Contract und Module sind die Features die D anbietet.
Anbei ein kleiner Programmierausschnitt:
import std.stdio;
void main(char[][] args)
{
writefln("Hallo Welt!");
}
Weitere Informationen finden Sie unter:
Programmiersprache D
Wikibooks: D Programming
Die Programmiersprache D
Quelle: Heise Online: Eleganter programmieren: D ist da
14. Juni 2008 von Haertzi
Wenn man einen Tomcat 5 oder 6 auf seinem Windows-Rechner installieren will und Java 1.6 benutzt, so erhält man womöglich folgende Fehlermeldung beim Starten des Tomcats:
Can’t create the specified module. Failed creating java C:\Programme\Java\jdk1.6.0\jre\bin\server\jvm.dll
ServiceStart returned 1
Mit Java 1.5 taucht der Fehler nicht auf. Um den Fehler unter Java 1.6 zu beheben, muss im Windows-Systemordner (C:\Windows\system32) die Datei msvcr71.dll existieren.