Guten Morgen Java-Forum,
ich bin momentan dabei ein Applet zu schreiben, welches mit den FTP-Server, von dem es kommt, kommuniziert. Ich bin dabei, es sicher zu gestalten, damit die gesendeten Daten nur schwer fälschbar sind und der Server halbwegs sicher bleibt.
Da ich aber ein Einsteiger in JAVA bin (prog etwa ein 3/4 Jahr), habe ich mir teilweise auch Code irgendwie zusammengereimt, den ich (leider noch) nicht so ganz verstehe
Ich kommuniziere über eine URL-Connection mit PHP-Scripten auf dem Server über POST. Dazu habe ich 3 Scripte auf dem Server zu liegen: Mit dem 1. überprüfe ich, ob die Datei existiert. Mit dem 2. lese ich die Datei aus und mit dem 3. schreibe ich in die Datei:
1. Existiert die Datei?
Ich übergebe in JAVA per POST den Dateinamel als String. Ich frage nur ab, ob die Datei existiert und übergebe "true" oder "false".
2. Datei lesen:
Ich übergebe in JAVA per POST den Dateinamen als String. Hier wird der gesamte Inhalt der Datei, die ich mit POST angebe übergeben.
3. Schreiben:
Hier übergebe ich den Dateinamen als String und den Text, der geschreiben werden soll.
Dies hier ist der Code in JAVA, mit dem ich die Scripte aufrufe:
Damit übergebe ich die benötigten Daten von JAVA aus über (das sichere?) POST an das PHP-Script.
Wenn ich nun sichere Daten auf dem Server zwischenspeichern muss, verschlüssel ich diese mit dem commons-codec.jar:
und speichere diese verschlüsselt auf dem Server. Wenn ich sie wieder benötige, hole ich sie mir verschlüsselt vom Server und entschlüssel sie:
Nun an die Sicherheitsspezialisten und Hacker (NICHT Cracker!!!) aus diesem Forum:
1. Ist der Weg, den ich benutze sicher?
2. Was kann an meinen Scripten verbessert werden?
3. Kann man das ganze sicherer gestalten? Und wie?
Wenn ihr antwortet wäre es nett, wenn ihr versucht, das ganze genau zu erklären und nicht eure Fachsprache benutzt, da ich, wie gesagt, nicht mal ein Jahr programmiere.
Danke im Voraus schonmal an alle Antworten.
mfg
BH16
PS: Mit diesem Post möchte ich gleichzeitig denjenigen einen Einstieg ermöglichen, die ähnliche Probleme wie ich haben, da ich sehr lange gebraucht habe, um diese Sicherheit (?) zu erstellen. Denn versucht einmal in Google etwas über POST zu finden, was nicht Deutsche Post heißt
ich bin momentan dabei ein Applet zu schreiben, welches mit den FTP-Server, von dem es kommt, kommuniziert. Ich bin dabei, es sicher zu gestalten, damit die gesendeten Daten nur schwer fälschbar sind und der Server halbwegs sicher bleibt.
Da ich aber ein Einsteiger in JAVA bin (prog etwa ein 3/4 Jahr), habe ich mir teilweise auch Code irgendwie zusammengereimt, den ich (leider noch) nicht so ganz verstehe
Ich kommuniziere über eine URL-Connection mit PHP-Scripten auf dem Server über POST. Dazu habe ich 3 Scripte auf dem Server zu liegen: Mit dem 1. überprüfe ich, ob die Datei existiert. Mit dem 2. lese ich die Datei aus und mit dem 3. schreibe ich in die Datei:
1. Existiert die Datei?
PHP:
<?php
$filename = $_POST['var1'];
if (file_exists($filename)) {
echo "true";
} else {
echo "false";
}
?>
2. Datei lesen:
PHP:
<?php
$var1 = $_POST['var1'];
readfile ($var1);
?>
3. Schreiben:
PHP:
<?php
$var1 = $_POST['var1'];
$var2 = $_POST['var2'];
$datei = fopen("$var1", "w+");
fwrite($datei, $var2."");
fclose($datei);
?>
Dies hier ist der Code in JAVA, mit dem ich die Scripte aufrufe:
Java:
url = new URL("http://server/Datei.php");
URLConnection uConn = url.openConnection();
uConn.setDoOutput(true);
OutputStream outStream = uConn.getOutputStream();
outStream.write(("var1=[DATEINAME]"/*beim Schreiben noch*/+"&var2=[TEXT]").getBytes());
outStream.close();
InputStream inStream = uConn.getInputStream();
int c = 0;
StringBuffer incoming = new StringBuffer();
while (c >= 0) {
c = inStream.read();
incoming.append((char) c);
}
inStream.close();
s = incoming.toString();
Damit übergebe ich die benötigten Daten von JAVA aus über (das sichere?) POST an das PHP-Script.
Wenn ich nun sichere Daten auf dem Server zwischenspeichern muss, verschlüssel ich diese mit dem commons-codec.jar:
Java:
new String(Base64.encodeBase64(StringUnverschlüsselt.getBytes()));
Java:
new String(Base64.decodeBase64(StringVerschlüsselt.getBytes()));
Nun an die Sicherheitsspezialisten und Hacker (NICHT Cracker!!!) aus diesem Forum:
1. Ist der Weg, den ich benutze sicher?
2. Was kann an meinen Scripten verbessert werden?
3. Kann man das ganze sicherer gestalten? Und wie?
Wenn ihr antwortet wäre es nett, wenn ihr versucht, das ganze genau zu erklären und nicht eure Fachsprache benutzt, da ich, wie gesagt, nicht mal ein Jahr programmiere.
Danke im Voraus schonmal an alle Antworten.
mfg
BH16
PS: Mit diesem Post möchte ich gleichzeitig denjenigen einen Einstieg ermöglichen, die ähnliche Probleme wie ich haben, da ich sehr lange gebraucht habe, um diese Sicherheit (?) zu erstellen. Denn versucht einmal in Google etwas über POST zu finden, was nicht Deutsche Post heißt