Java Programme - Sicherheit

Status
Nicht offen für weitere Antworten.

7123

Aktives Mitglied
Hi, ich habe mal eine allgemeine Frage bezüglich Java Programme. Es wird immer wieder betont, Methoden und Variablen mit dem größtmöglichen Schutz zu deklarieren (am besten private). Wenn man nun jedoch eine Anwendung mit Java programmiert, ist es dann für außenstehende möglich, die .class datei wieder in eine Java Datei umzuwandeln, bzw. sich in das Programm "einzuhacken", oder ist es im Fall einer abgeschlossenen Anwendung egal wie man die Methoden und Variablen definiert, bzw. kann man sich gegen solche Zugriffsversuche in Java besonders absichern?
 

Wildcard

Top Contributor
Da hast du was völlig falsche verstanden. Bei den Access-Modifiern geht es um Sichtbarkeit nach aussen (Kapselung) und nicht um den Schutz vor bösen Crackern :wink:
 
G

Guest

Gast
Das mit der Sichtbarkeit von Methoden ist nicht als Schutz von Code gedacht. Diese Empfehlung mit dem
"Größtmöglichen Schutz" ist mehr im Design einer Anwendung begründet. Man macht nur Methoden "sichtbar", die
auch dafür gedacht sind, dass sie von Aussen verwendet werden.
Dein Code kann mit Leichtigkeit wiederhergestellt werden, selbst wenn man nur die *.class Dateien hat. Du kannst
es einem aber schwer machen, indem du einen sog. Obfuscator verwendest. Das Ding macht aus deinem
Code unleserliches Zeug, wo man nicht mehr nachvollziehen kann, was sich dahinter verbirgt. Trotzdem gibt es
immer noch eine Möglichkeit das ganze zu analysieren, der Aufwand ist dann aber relativ gross.
 

7123

Aktives Mitglied
Das heißt also: Es ist vollkommen egal wie man das Programm schreibt mit der Sichtbarkeit der Methoden(, Variablen), wichtig ist nur das es funktioniert, kann man das so sagen?
 

Schandro

Top Contributor
Variablen als private zu deklarieren ist einfach nur ein erprobter und guter Weg, guten Code zu schreiben. Wenn du persönlich deinen Code auf ne andere Weise besser schrieben kannst. dann machs. (gilt für privates Coden, in Firma isses was anderes)
 

7123

Aktives Mitglied
Wieso ist das in der Firma anders, wird dort davon ausgegangen, dass die Programme evtl. noch weiterverarbeitet werden bzw. aus den Programmen Klassen und anderes vlt. noch benötigt werden oder wie verhält sich das? (nur aus Interesse)
 

Wildcard

Top Contributor
Bei diesem Punkt gibt es überhaupt keine Diskussion. So wird in Java programmiert, ohne wenn und aber. Zuhause kannst du deine eigene Suppe kochen (auch wenn sich das nicht empfiehlt), aber im professionellen Umfeld klopft man dir für dreckigen Code auch schnell mal auf die Finger.
 

7123

Aktives Mitglied
Läuft das auf den Punkt hinaus das ab einer bestimmten Projektgröße eine gewisse Ordnung herrschen muss, besonders wenn mehrere Leute an einem Projekt arbeiten?
 

Wildcard

Top Contributor
Eine gewisse Ordnung muss immer herrschen. Je mehr Leute beteiligt sind, desto wichtiger wird die Sache.
 

Marco13

Top Contributor
Gast 7123 hat gesagt.:
Das heißt also: Es ist vollkommen egal wie man das Programm schreibt mit der Sichtbarkeit der Methoden(, Variablen), wichtig ist nur das es funktioniert, kann man das so sagen?

Jupp, kann man. Man kann auch sagen, dass es egal ist, ob man seine Haustür abschließt, weil das ja auch nicht davor schützt, dass das Haus abbrennt. Hat nichts miteinander zu tun, und ist auch ziemlich unklug, aber sagen kann man das natürlich.

Mal im ernst: Wenn deine Anwendung mal ein wenig über "Hallo, Welt" hinausgeht, wirst du schnell merken, dass sich Programmierfehler (wie alles public (und am besten noch static :autsch: ) zu machen) sich schnell biiitterr rächen können. Aufs konkrete Beispiel bezogen: Das "Geheimnisprinzip" http://de.wikipedia.org/wiki/Datenkapselung_(Programmierung) gilt nicht für eine bestimmte Sprache, sondern für Objektorientierte Programmierung allgemein.
 

7123

Aktives Mitglied
Naja static muss wirklich nicht sein, das stimmt schon, aber da du gerade die gesamte Objektorientiert Programmierung angsprochen hast... Über welche Porgrammiersprache sollte man denn am besten einsteigen, ist Java dafür geeignet oder unterscheidet sich die Programmiersprach schon ziemlich von den anderen (besonders C++ und C#)?
 

Marco13

Top Contributor
Natürlich gibt es Unterschiede (die in anderen Threads nicht nur bis zum Erbrechen, sondern weeeiiit darüber hinaus breitgetreten wurden :wink: ) Aber um Objektorierntierte Programmierung zu lernen ist Java IMHO schon gut geeignet. Leichter und bequemer als C++, und nicht so "weltfremd" wie Eiffel :wink:
 

Der Müde Joe

Top Contributor
Persönlich finde ich für den Einstieg Python recht angenehm, wobei Java auch ok ist (--> absolut subjektive persönliche Meinung)
 

7123

Aktives Mitglied
Welche Sprache wird heutzutage eigentlich zur Anwendungsprogrammierung (keine Grafik, Spiele...) vorrangig genutzt?
 

Auron

Mitglied
Ein weiterer Grund Variablen private zu halten ist der Zugriff auf diese Daten. Wenn du den Zugriff nur über deine Funktionen erlaubst kannst du bestimmen wie diese Variablen gesetzt werden.
Mal sehen, sagen wir du willst nicht das eine bestimmte Variable null gesetzt wird und schreibst eine set Methode die das abfängt. Ist die Variable hingegen von außen zugängig kann jeder da reinschreiben was er will.

Das wollte ich nur sagen hat mir bei den bisheriegen Erklärungen gefehlt :bae:

Auron
 

7123

Aktives Mitglied
Ja, das mit den privaten Variablen scheint mir so wie eine zweite Ebene zu sein: Man muss Aufpassen das der Nutzer nichts falsches eingibt (über Exceptions, if Schleifen,...) und der Programmierer auch (private Deklaration, Methoden die die Variablen bereit Stellen). Ich hatte nur gedacht, das es vlt. einen Unterschied macht (bezüglich der Deklaration der Variablen), wenn man z.B. eine Anwendung fürs Internet (Kaufabwicklung, etc.) schreib, da dort ja aktiv etwas gemacht wird mit dem Programm, dem ist ist aber nicht so... (Ist halt nur mehr aufwand für jede Variable eine Methode bereit zu Stellen...) wieder was gelernt :)
 

Marco13

Top Contributor
:lol: Die Google Trends sind ja mal ziemlich für die Socken, wenn auf einmal ein Erdbeben in Indonesien zur scheinbaren Verbreitung einer bestimmten Programmiersprache beiträgt :lol:
 

Saxony

Top Contributor
Naja beid en Google Trends geht es ja eher darum wann, welche Suchbegriffe wie oft verwendet wurden.

Jemand der nach Java sucht muss nicht zwingend nach der Sprache suchen.

Interessant ist auch mal nach Handy, cell phone und mobile phone die Trends zu suchen.

Handy -> Deutschland
mobile phone -> GB
cell phone -> USA

:D

bye Saxony
 

7123

Aktives Mitglied
Danke, das war ein guter Tipp, da erspart man sich sehr viel Zeit und Arbeit, hast du noch mehr solche Tipps? :D
 

Wildcard

Top Contributor
Les dir einfach mal die Eclipse Help durch. Dabei wirst du dann entdecken, dass du noch keine 5% des Funktionsumfangs kennst.
Wenn du mal 60% kennst, kannst du anfangen PlugIns zu installieren :wink:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Kann ich Java - Programme auch ohne Editor öffnen? Java Basics - Anfänger-Themen 70
A Erste Schritte Vieschiedene Java versionen für verschiedne Programme/Projekte Java Basics - Anfänger-Themen 3
D Java-Programme nur vom eigenem Pc ausführbar Java Basics - Anfänger-Themen 10
B Warum haben Java Programme ein anderes Design? Java Basics - Anfänger-Themen 5
H Sehr einfache Java-Programme Java Basics - Anfänger-Themen 24
Kenan89 Vorbereitungen für JSP und Java Programme Java Basics - Anfänger-Themen 2
S Verständnisprobleme wie Java Programme ablaufen Java Basics - Anfänger-Themen 6
P Suche Java Programme mit gutem/anfängertauglichem Quellcode Java Basics - Anfänger-Themen 8
F Warum werden nicht mehr Programme in Java geschrieben? Java Basics - Anfänger-Themen 27
B Wie entwirft man JAVA-Programme? Java Basics - Anfänger-Themen 10
G Kleine Java Programme aus Main Java Programm starten..... Java Basics - Anfänger-Themen 3
B Java programme Vorschläge! Java Basics - Anfänger-Themen 13
R java-programme schneller laufen lassen Java Basics - Anfänger-Themen 41
K JAVA für online und offline Programme? Java Basics - Anfänger-Themen 7
N Kann keine Java-Programme mehr schreiben Java Basics - Anfänger-Themen 10
K Java Programme ausführen? Java Basics - Anfänger-Themen 8
G Kann mit Java Editor keine Programme schreiben Java Basics - Anfänger-Themen 5
H Textpad > Benutzer-Programme für Java Java Basics - Anfänger-Themen 2
C Mit Java auf laufende Programme zugreifen Java Basics - Anfänger-Themen 3
I Java-Programme starten nicht Java Basics - Anfänger-Themen 14
V Parameter an Java-Programme übergeben Java Basics - Anfänger-Themen 8
F Ausführbare Java-Programme erstellen Java Basics - Anfänger-Themen 9
B 2 Programme als 1 Java Programm einbinden Java Basics - Anfänger-Themen 15
G Java Programme nichtmehr-decompilierbar machen Java Basics - Anfänger-Themen 34
K aus Java Programme Jar.datei erstellen (eclipse) Java Basics - Anfänger-Themen 15
T Wie kann ich andere Programme in Java über ein Menü öffnen? Java Basics - Anfänger-Themen 12
K Kann keine Java Programme öffnen Java Basics - Anfänger-Themen 17
G Programme via java steuern Java Basics - Anfänger-Themen 5
K Java Programme ausführen Java Basics - Anfänger-Themen 8
H .java Dateien in Eclipse einbinden und ausführen Java Basics - Anfänger-Themen 1
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
O Java Kara geschweifte Klammern Java Basics - Anfänger-Themen 2
richis-fragen Mausrad logitech kann links und rechts klick wie in java abragen. Java Basics - Anfänger-Themen 15
XWing Java Klssenproblem Java Basics - Anfänger-Themen 4
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
G Java 8 - Support-Ende Java Basics - Anfänger-Themen 7
T Java Weihnachtsbaum + Rahmen Java Basics - Anfänger-Themen 1
N Will mit Java anfangen Java Basics - Anfänger-Themen 13
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
M Java Mail Programm Java Basics - Anfänger-Themen 4
Sniper1000 Java 391 für Windows Java Basics - Anfänger-Themen 37
J Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
JaZuDemNo Java im Studium Java Basics - Anfänger-Themen 7
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
I QR code in Java selber generieren Java Basics - Anfänger-Themen 5
V Java-Ausnahmebehandlung: Behandlung geprüfter Ausnahmen Java Basics - Anfänger-Themen 1
krgewb Java Streams Java Basics - Anfänger-Themen 10
A Überwältigt von der komplexen Java Welt Java Basics - Anfänger-Themen 29
O Mehrfachvererbung auf Spezifikations- und Implementierungsebene in Java. Interfaces Java Basics - Anfänger-Themen 19
John_Sace Homogene Realisierung von Generics in Java ? Java Basics - Anfänger-Themen 19
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
R mit Java API arbeiten Java Basics - Anfänger-Themen 9
P JDK installieren Probleme bei der Java-Installation Java Basics - Anfänger-Themen 8
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
Timo12345 JNLP File mit Java öffnen Java Basics - Anfänger-Themen 2
S Video Editierung mit Java.._ Java Basics - Anfänger-Themen 2
F Einstelungen in Java - CursorBlinkRate Java Basics - Anfänger-Themen 10
A PHP $_POST["name"] in Java Java Basics - Anfänger-Themen 3
vivansai21 Is there a oneliner to create a SortedSet filled with one or multiple elements in Java? Java Basics - Anfänger-Themen 9
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
Arjunreddy Can someone please tell me how to use a debugger in BlueJ(a Java environment) Java Basics - Anfänger-Themen 1
M Java assoziationen (UML) Java Basics - Anfänger-Themen 8
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
H Nutzt Eclipse alle CPU-Threads beim Ausführen von Java-Programmen? Java Basics - Anfänger-Themen 4
xXGrowGuruXx Java einstieg, leichte sache 0 verstanden Java Basics - Anfänger-Themen 7
A java.sql.SQLException: Data type mismatch. Java Basics - Anfänger-Themen 1
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
N Java Spiel Figur auf dem Hintergrundbild bewegen. Java Basics - Anfänger-Themen 11
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
A Lerngruppe Java Java Basics - Anfänger-Themen 2
G Help me in the Java Program Java Basics - Anfänger-Themen 2
L Java- Vererbung Java Basics - Anfänger-Themen 4
LimDul Suche Java Stream Tutorial Java Basics - Anfänger-Themen 2
_so_far_away_ Ich möchte Java lernen Java Basics - Anfänger-Themen 11
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
V Bild per Java Script austauschen Java Basics - Anfänger-Themen 7
MoxMorris this Keyword in Java Java Basics - Anfänger-Themen 14
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
wolei JAVA Zeitdifferenz feststellen. Java Basics - Anfänger-Themen 4
DiyarcanZeren Rekursion in Java Java Basics - Anfänger-Themen 5
wolei Java generic interface in a generic class Java Basics - Anfänger-Themen 6
monsterherz Ablauf der Erstellung eines Java Programmes Java Basics - Anfänger-Themen 17
monsterherz Circle.java:5: error: <identifier> expected Java Basics - Anfänger-Themen 2
julian-fr Wie kann ich am besten Java lernen? Java Basics - Anfänger-Themen 17
A Java-Properties und -RessourceBundles Java Basics - Anfänger-Themen 5
lrnz22 Java-Basics-Aufgabe Java Basics - Anfänger-Themen 8
R Java kann nicht installiert werden Java Basics - Anfänger-Themen 8
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
G In ein java Dokument Ton einbinden Java Basics - Anfänger-Themen 1
C was heisst es wenn java ']' erwartet ? Java Basics - Anfänger-Themen 2
KeinJavaFreak Erste Schritte Programm "Java(TM) Platform SE binary " nicht vorhanden Java Basics - Anfänger-Themen 1
KeinJavaFreak Erste Schritte Java "Executable Jar File" nicht vorhanden Java Basics - Anfänger-Themen 1
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben