String filtern und Systeminfos

fleckdalm

Bekanntes Mitglied
Wie kann ich einen String darauf prüfen ob er besitmmte wörter enthält?
Gibt es unter Windows so eine Art eindeutige identifikations Nummer? Wenn ja wie kann ich diese auslesen?
Schonmal Danke, mfg Fleckdalm
 
Java:
String str1 = "123hallo123";
String search = "hallo";
if (str1.contains(search)) {
System.out.println(str1 + " enthält " + search);
}

Du könntest z.B. die HardwareID auslesen, allerdings wäre dann die Plattformunabhängigkeit verloren, wenn das überhaupt mit Java machbar ist.
 
Brauchst du das für diesen Teil deines Quiz?
http://javaquiz.de.to/ hat gesagt.:
Schreibt aber bitte keine beleidigenden, diskriminierenten oder ähnliche Fragen (sonst wird euer Computer für immer gesperrt!!)


Ich denke, das mit der "Identifikationsnummer" (von der ich nicht glaube, dass es eine solche gibt, schon gar nicht einheitlich für Windows, Linux, Mac, BSD usw.) wird nicht klappen. Du könntest vielleicht eine Art IP-Blacklisting betreiben und anhand der IP bestimmte Nutzer von der Teilnahme ausschließen, aber damit wirst du niemanden kriegen, der eine dynamische IP hat - der hat dann beim nächsten Mal Spielen einfach eine andere und fällt durchs Raster.

Warum machst du es nicht so, dass du eine Freemail-Adresse anlegst, auf die du die Fragen schicken lässt? Dann kannst du händisch aussortieren und auf diese Weise alles erwischen, was nicht mit deinen Regeln konform geht. Beim nächsten Programmupdate nimmst du dann die neuen Fragen mit auf.

A propos Plattformunabhängigkeit: Wieso bietest du nur eine .exe an? Ich z.B. kann das Spiel damit nicht spielen.
 
Ja ich brauche es dafür ;-)
da in letzter zeit ein paar blöde Fragen geschrieben wurden, filtere ich die Fragen jetzt.
Sperren tue ich bis jetzt mit dem Benutzernamen, aber das ist 1. blöd weil ja mehrere leute den gleichen benutzernamen haben können, und 2. weil jetzt anscheinen schon wer dahintergekommen ist und einen extra benutzer erstellt hat um blöde fragen zu schreiben. Das ist wegen der Filterung jetzt aber eh nicht mehr so schlimm.

Ich biete mein Quiz deshalb nur als .exe an (mit Zusatz programm konvertiert), weil man die .jar nur in einer IDE öffnen müsste um den Code zu sehen, und das ist deswegen blöd, weil dort eben unter anderem auch die login daten gespeichert sind mit denen das programm sich anmelden muss um Fragen online zu speichern. Der Plattformunabhängigkeit würde ein .jar file aber sowieso nichts helfen, da ich den user ordner benutze um die Fragen lokal zu speichern und der aufruf von diesem führt unter linux immer zu einer Exception.

Das mit der Freemail finde ich auch nicht so gut, da mir das zu viel arbeit ist. Außerdem würde es zu lange dauern bis die Fragen aufscheinen.

Achja und wenn du mein Quiz ausprobieren willst benutze wine damit geht es;-)

Ich hoffe das war dir jetzt nicht zu lang zum lesen;-)
Danke, mfg Fleckdalm
 
Der Plattformunabhängigkeit würde ein .jar file aber sowieso nichts helfen, da ich den user ordner benutze um die Fragen lokal zu speichern und der aufruf von diesem führt unter linux immer zu einer Exception.
Wie lautet das Stück Code, das du an dieser Stelle verwendest? Es gibt einen Key "user.home", mit dem du über System.getProperty() auf das Heimverzeichnis des Nutzers auf dem jeweiligen System zugreifen kannst - das ist plattformunabhängig.

Das mit der Freemail finde ich auch nicht so gut, da mir das zu viel arbeit ist. Außerdem würde es zu lange dauern bis die Fragen aufscheinen.
Ich denke mal nicht, dass das Quiz bereits sooo arg bekannt ist, dass diese Zeitspanne tatsächlich ins Gewicht fallen würde 😉


Ach ja, und Exe-Dateien kann man auch dekompilieren, das schützt dich also nicht davor, dass dein Server von Fremden übernommen wird. Das Prinzip "Sicherheit durch Verschleierung" ist meines Erachtens nicht so zu empfehlen.
 
Zuletzt bearbeitet:
Wie lautet das Stück Code, das du an dieser Stelle verwendest? Es gibt einen Key "user.home", mit dem du über System.getProperty() auf das Heimverzeichnis des Nutzers auf dem jeweiligen System zugreifen kannst - das ist plattformunabhängig.
genau das benutze ich, es kommt aber trotzdem zu einer exception!

Ich denke mal nicht, dass das Quiz bereits sooo arg bekannt ist, dass diese Zeitspanne tatsächlich ins Gewicht fallen würde 😉
ja das könnte stimmen, aber ich will mir die arbeit trotzdem nicht antun;-)

Ach ja, und Exe-Dateien kann man auch dekompilieren, das schützt dich also nicht davor, dass dein Server von Fremden übernommen wird. Das Prinzip "Sicherheit durch Verschleierung" ist meines Erachtens nicht so zu empfehlen.
Was kann ich denn sonst noch tun um meine Zugangsdaten zu schützen? Es muss doch eine möglichkeit geben sonst hätten die ganzen großen firmen usw. Ja auch probleme oder?
Mfg Fleckdalm

EDIT: keine ahnung wieso aber das 1. Quote will einach nicht...
Achja und hast du mein Quiz jetzt über wine oder so angeschaut? Wenn ja würde mich wirklich interessieren was du davon hältst, ist nämlich mein erstes größeres Programm
 
Zuletzt bearbeitet:
Mach mal das Leerzeichen das Leerzeichen bei [noparse][ /QUOTE][/noparse] weg, vielleicht geht es dann.

Was kann ich denn sonst noch tun um meine Zugangsdaten zu schützen? Es muss doch eine möglichkeit geben sonst hätten die ganzen großen firmen usw. Ja auch probleme oder?
Also die erste Idee wäre, nicht das Clientprogramm dazu zu verwenden, um auf dem Server Sachen zu verändern ^^
Informier dich mal über das sog. Client-Server-Modell (Wikipedia, Google oder so). Wenn du deine Daten schützen willst, darfst du dem Client auf keinen Fall so viel Macht einräumen, wie du es im Augenblick tust. Ich hab grad kein Wine hier installiert und kann es nicht testen, aber ich vermute, dass sich die Logindaten z.B. über Wireshark sniffen lassen (wenn die Verbindung nicht verschlüsselt ist).
 
Ich habe mir mal den Wikipedia artikel durchgelesen und verstehe zumindest so halbwegs was gemeint ist, habe aber keine Ahnung wie ich das in meinem programm realisieren könnte...
Schade das du es momentan nicht anschauen kannst, aber vielleicht kannst es ja demnächst mal über wine oder so anschauen ich hätte nämlich mal gerne die meinung von einem erfahrenen programmierer dazu(zumindest sofern das ohne quellcode möglich ist)
Mir wäre es aber natürlich auch lieber wenn es unter linux laufen würde. Nur weiß ich nicht warum die exception unter linux sonst fliegt wenn das system.getproperty("user.home") mit linux kompatibel ist. Liegt es vielleicht am ordner erstellen oder so? Es hat jedenfalls sicher etwas mit dem lesen bzw. Schreiben der daten im benutzerordner zu tun. Außerdem müsste ich es bevor ich es linux kompatibel mache mal soweit bringen das meine zugangsdaten geschützt sind. Und da nehme ich jetzt noch die exe datei, weil dann kommt man wenigstens nicht so leicht an die daten ran.
Mfg Fleckdalm
 
hallo fleckdalm,

ich habe eine schlechte nachricht für dich.
es ist nicht nötig deine exe zu dekompilieren um an die hard-gecodeten benutzerdaten zu kommen.

keine sorge, ich werde da keinen mist machen aber du solltest dein passwort ändern und dir einen anderen lösungsansatz überlegen!
 

Anhänge

  • cap.PNG
    cap.PNG
    28,1 KB · Aufrufe: 39
Ach mist, ic hätte nie gedacht das das so einfach ist...
Aber erstmal danke das du mich überhaupt informierst, und das nicht ausnutzt.
Ich glaube mir wird nicht viel was anderes übrigbleibn als das Quiz vorläufig zu sperren oder?
Da ich es aber nur möglichst kurz sperren will, könnt ihr mir bitte bald einen anderen lösunsansatz vorachlagen? Momentan benutze ich die zusatzklasse org.apache.....ftp um dateien down bzw. Up zuloaden, aber im grunde geht es nur darum text in txt dateien zu schreiben und in von dort wieder zu lesen.
Wenn ich das in einen extra thread packe soll bitte sagen.
schonmal ein großes danke, mfg Fleckdalm
 
Du könntest dir einen Gratis WEbhoster suchen auf dem du PHP ausführen könntest. Dann könntest du dir in php ein Script erstellen das auf deinem Webserver die Fragen die du schickst in deine Datei schreibt. und auf die Textdatei könntest du dann dirket per Http GET drauf zu greifen.

Hat den Vorteil, dass du in deinem Client keine Login-informationen bekannt geben musst.
 
LOLFAIL, sag ich doch, Wireshark :lol:

(Hm, ich finde es ja bemerkenswert, dass ich bisher noch kein Danke bekommen habe. Sind meine Beiträge vielleicht zu kritisch? 😀)
 
Du könntest dir einen Gratis WEbhoster suchen auf dem du PHP ausführen könntest. Dann könntest du dir in php ein Script erstellen das auf deinem Webserver die Fragen die du schickst in deine Datei schreibt. und auf die Textdatei könntest du dann dirket per Http GET drauf zu greifen.

Hat den Vorteil, dass du in deinem Client keine Login-informationen bekannt geben musst.
weiß jemand ob das bei lima-city geht? Wenn ja wie kann ich so ein php script schreiben? Könnte mir vielleicht jemand einen kurzen crashkurs gehen?

@haave habe mich jetzt bedankt, das war sicher nicht böse gemeint habe es bloß vergessen.

Danke, mfg Fleckdalm
 
Ist das so aufwendig wie java zu lernen? Wenn ja lohnt sich das dann nämlich glaube ich nicht da ich es ja nur jetzt kurz brauche!
Gibt es denn nicht noch eine andere möglichkeit?
Danke, mfg Fleckdalm
 
Code:
<?php
$text = $_GET['frage']; // Dateiinhalt
$dateiname = "test.txt"; // Name der Datei
// Datei öffnen,
// wenn nicht vorhanden dann wird die Datei erstellt.
$handler = fOpen($dateiname , "a+");
// Dateiinhalt in die Datei schreiben
fWrite($handler , $text);
fClose($handler); // Datei schließen
?>

das stück Code da schreib einen text den du beim aufruf des PHP scripts übergibst in eine File mit dem namen test.txt

das script musst du so aufrufen.

Code:
http://www.deineURL.com/script.php?frage=HIER IST DIE FRAGE

das ganze muss nun noch etwas angepasst werden aber naja das hab ich auf die schnelle bei google gefunden


Aber ja php ist genauso zum lernen wie Java
 
Wie kann ich denn die php datei mittels java aufrufen?(im webrowser geht es schon mehr oder weniger) und wie kann ich dann mittels php den dateiinhalt ansehen, bzw. herunterladen? Wie kann man mit php zeilenumbrüche einfügen?
Ich habe jetzt schon ein bisschen im internet recherchiert, und herausgefunden das es äußerst unklug ist zwei Programmiersprachen zu mischen? Also gibt es nicht vielleicht noch eine andere möglichkeit? zb. das ich die Verbindung irgendwie verschlüssle?
Danke, mfg Fleckdalm
 
wenn lima-city SFTP anbietet, könntest du die kommunikation zwischen client und server verschlüsseln. aber das problem bleibt, deine zugangsdaten sind weiterhin auf client seite. für deinen fall ist das nicht so schlimm, schliesslich ist das keine kritische anwendung und du merkst es ja wenn jemand illegale daten auf den ftp lädt.

aber generell löst man dieses problem entweder durch den einsat eines klugen client-server modells.
also kommunikation über sockets oder webservices. das kostet einiges an einarbeitungszeit und du brauchst einen richtigen (apllication)-server.

wenn du mit java wirklich mächtige anwendungen bauen willst, solltest du dich eh mit application servern (tomcat, glassfish, jboss, usw.) und webservices beschäftigen. allgemein mit java enterprise edition.
das würde jetzt hier aber zu weit gehen, eine lösung für dein problem mit diesen technologien zu beschreiben.
 
Ich habe mir das mit php schon ein bisschen angeschaut, aber ich kann es nur mit dem Webbrowser aufrufen! Ich habe es mit Java wie folgt versucht:
Java:
   try {
            URL u = new URL("http://www.quizdaten.lima-city.de/test.php?frage=HIER IST DIE FRAGE");
            URLConnection uc;
            try {
                uc = u.openConnection();
                   uc.connect();
  
            } catch (IOException ex) {
                Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
            }

            
            // TODO code application logic here
        } catch (MalformedURLException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        }
es passiert aber einfach gar nichts!!
wieso?
und wie kann ich dann wenn es funktioniert in meinen txt dateien nach jeder Frage zeilenumbrüche einfügen?
Danke, mfg Fleckdalm
 

Neue Themen


Zurück
Oben