JAR-Dateiverschlüsselungsattribute für die Sicherheit Das JAR-Dateivritual enthält Informationen über den Inhalt der JAR-Datei einschließlich Sicherheits - und Konfigurationsinformationen. Verwenden Sie die in diesem Abschnitt beschriebenen Manifest-Attribute, um die Sicherheit der Ausführung von RIAs aus einem Browser zu erhöhen. Fügen Sie dem Manifest die Attribute hinzu, bevor die JAR-Datei signiert ist. Weitere Informationen zum Hinzufügen von Attributen zur JAR-Manifestdatei finden Sie unter Ändern einer Manifestdatei im Java-Tutorial. Hinweis: Diese Attribute gelten für signierte Applets und Java Web Start-Anwendungen. Diese Attribute werden für eigenständige Java-Anwendungen ignoriert. Berechtigungen Attribut Das Attribut Berechtigungen wird verwendet, um zu überprüfen, dass die Berechtigungsstufe, die von der RIA angefordert wird, wenn sie ausgeführt wird, mit der Berechtigungsstufe übereinstimmt, die beim Erstellen der JAR-Datei festgelegt wurde. Verwenden Sie dieses Attribut, um zu verhindern, dass eine Person eine Anwendung erneut repliziert, die mit Ihrem Zertifikat signiert ist und sie auf einer anderen Berechtigungsebene ausgeführt wird. Setzen Sie dieses Attribut auf einen der folgenden Werte: sandbox - Gibt an, dass das RIA im Sicherheits-Sandbox ausgeführt wird und keine zusätzlichen Berechtigungen erfordert. All-permissions - Gibt an, dass das RIA Zugriff auf die Systemressourcen des Benutzers erfordert. Für Java Web Start-Anwendungen und Applets, die JNLP verwenden, muss der Wert des Berechtigungsattributs mit der in der JNLP-Datei angeforderten Berechtigungsstufe übereinstimmen oder mit der Standardberechtigung übereinstimmen, wenn keine Berechtigungsstufe angefordert wird. Andernfalls wird ein Fehler angezeigt und der RIA gesperrt. Siehe Struktur der JNLP-Datei für Informationen über das Sicherheitselement, mit dem die Berechtigungsstufe angefordert wird. Wenn das Element nicht vorhanden ist, ist die Berechtigungsstufe standardmäßig Sandbox. Für Applets, die JNLP nicht verwenden, muss der Wert des Berechtigungsattributs mit der im Applet-Tag angeforderten Berechtigungsstufe übereinstimmen. Andernfalls wird ein Fehler angezeigt und der RIA gesperrt. Wenn das Applet-Tag keine Berechtigungsebene enthält, werden die signierten Applets mit der vom Berechtigungsattribut festgelegten Berechtigungsstufe ausgeführt. Informationen zum Festlegen der Berechtigungsstufe im Applet-Tag finden Sie unter Bereitstellen mit dem Applet-Tag. Wenn der Schieberegler "Sicherheitsstufe" in der Java-Systemsteuerung auf "Sehr hoch" oder "hoch" gesetzt ist. Ist das Attribut Berechtigungen in der JAR-Hauptdatei für das RIA erforderlich. Wenn das Attribut nicht vorhanden ist, wird das RIA gesperrt. Für die Sicherheitsstufe Mittel, wenn das Berechtigungsattribut nicht vorhanden ist, enthält die Sicherheitsabfrage eine gelbe Warnung über das fehlende Attribut und die vom RIA angeforderte Berechtigungsstufe wird verwendet. Codebase-Attribut Das Codebase-Attribut wird verwendet, um die Codebasis der JAR-Datei auf bestimmte Domänen zu beschränken. Verwenden Sie dieses Attribut, um zu verhindern, dass jemand Ihre Anwendung auf einer anderen Website für böswillige Zwecke erneut implementiert. Hinweis: Wenn das Codebase-Attribut keinen sicheren Server angibt, z. B. HTTPS. Besteht ein gewisses Risiko, dass Ihr Code in Man-in-the-Middle (MITM) Angriffsschemata umgewandelt werden könnte. Legen Sie dieses Attribut entweder auf den Domänennamen oder die IP-Adresse fest, in der sich die JAR-Datei für die Anwendung befindet. Das Protokoll und die Portnummer können ebenfalls enthalten sein. Trennen Sie für mehrere Standorte die Werte durch ein Leerzeichen. Ein Asterisk () kann als Platzhalter nur am Anfang des Domänennamens verwendet werden und kann nicht mit nur einer Top-Level-Domain verwendet werden. Die folgende Tabelle zeigt Beispielwerte und deren Übereinstimmung. Der Wert des Codebase-Attributs muss mit dem Speicherort der JAR-Datei für den RIA übereinstimmen. Andernfalls wird ein Fehler angezeigt und der RIA gesperrt. Wenn das Attribut nicht vorhanden ist, wird eine Warnung an die Java-Konsole geschrieben und die für das Applet-Tag oder die JNLP-Datei angegebene Codebasis verwendet. Application-Name-Attribut Das Application-Name-Attribut wird in Sicherheitsaufforderungen verwendet, um einen Titel für Ihre signierte RIA bereitzustellen. Die Verwendung dieses Attributs wird empfohlen, um Benutzern zu helfen, die Entscheidung zu treffen, das RIA zu vertrauen und auszuführen. Der Wert kann ein beliebiger gültiger String sein, zum Beispiel: Wenn das Application-Name-Attribut im JAR-Dateimanifest nicht vorhanden ist, wird eine Warnung an die Java Console geschrieben und der Wert für das Main-Class-Attribut verwendet. Wenn im Manifest kein Attribut vorhanden ist, wird in den Sicherheitsaufforderungen kein Titel angezeigt. Titel werden nicht für nicht signierte RIAs angezeigt. Application-Library-Allowable-Codebase-Attribut Das Attribut Application-Library-Allowable-Codebase identifiziert die Orte, an denen Ihr signiertes RIA erwartet wird. Dieses Attribut wird verwendet, um festzustellen, was in dem Feld Standort für die Sicherheitsabfrage aufgeführt ist, die Benutzern angezeigt wird, wenn die JAR-Datei für Ihr RIA an einem anderen Speicherort als die JNLP-Datei oder HTML-Seite ist, die Ihr RIA startet. Wenn sich die Dateien nicht an den identifizierten Orten befinden, wird das RIA gesperrt. Setzen Sie dieses Attribut auf die Domänen, in denen sich die JAR-Datei, die JNLP-Datei und die HTML-Seite befinden. Um mehrere Domänen anzugeben, trennen Sie die Domänen durch ein Leerzeichen, zB: Wenn das Attribut Application-Library-Allowable-Codebase vorhanden ist und dem Ort entspricht, aus dem das RIA gestartet wird, wird im Feld Location ein einzelner Host aufgelistet Für die Eingabeaufforderung und die Option zum Verbergen zukünftiger Eingabeaufforderungen bereitgestellt wird. Wenn dieses Attribut vorhanden ist und auf die Dateien von einem Speicherort zugegriffen werden, der nicht für das Attribut enthalten ist, wird das RIA blockiert. Wenn dieses Attribut nicht vorhanden ist, werden mehrere Hosts, die den Speicherorten der JAR-Datei und der JNLP-Datei oder HTML-Seite entsprechen, im Feld "Standort" für die Eingabeaufforderung aufgelistet. Wenn mehrere Hosts angezeigt werden, erhält der Benutzer keine Möglichkeit, zukünftige Eingabeaufforderungen zu verbergen. Die Verwendung dieses Attributs wird empfohlen, so dass die Dateien für die RIA nur von bekannten Orten abgerufen werden. Dieses Attribut wird nicht benötigt, wenn sich die JAR-Datei für das RIA am selben Speicherort befindet wie die JNLP-Datei oder HTML-Seite, die das RIA startet. Eine Beschreibung der zulässigen Werte finden Sie unter Codebase-Attribut. Caller-Allowable-Codebase-Attribut Das Caller-Allowable-Codebase-Attribut wird verwendet, um die Domänen zu identifizieren, aus denen JavaScript-Code Anrufe zu Ihrem RIA ohne Sicherheitsaufforderungen machen kann. Setzen Sie dieses Attribut auf die Domäne, die den JavaScript-Code hostet. Wenn ein Anruf von einem JavaScript-Code ausgeführt wird, der sich nicht in einer vom Attribut Caller-Allowable-Codebase angegebenen Domain befindet, wird der Anruf gesperrt. Um mehrere Domänen anzugeben, trennen Sie die Domänen durch ein Leerzeichen, zum Beispiel: Wenn das Caller-Allowable-Codebase-Attribut nicht vorhanden ist, zeigen Anrufe vom JavaScript-Code zu Ihrem RIA eine Sicherheitswarnung an und Benutzer haben die Wahl, den Anruf zuzulassen Oder den Anruf sperren. Für unsignierte RIAs muss der JavaScript-Code, der Zugriff auf die RIA erfordert, am selben Ort wie die JAR-Hauptdatei für Ihre RIA sein, andernfalls wird der Benutzer aufgefordert, Zugriff zuzulassen. Für jede Applet classLoader-Instanz werden Sicherheitsaufforderungen angezeigt. Eine Beschreibung der zulässigen Werte finden Sie unter Codebase-Attribut. Wenn als Wert für das Caller-Allowable-Codebase-Attribut ein eigenständiger Asterisk () angegeben wird, dann rufen Anrufe vom JavaScript-Code zu Ihrem RIA eine Sicherheitswarnung an und Benutzer haben die Wahl, den Anruf zuzulassen oder den Anruf zu blockieren. Eine Option, sich an die Wahl zu erinnern, wird ebenfalls zur Verfügung gestellt, und falls ausgewählt, wird die Warnung nicht mehr angezeigt, wenn das RIA gestartet wird. Entry-Point-Attribut Das Entry-Point-Attribut wird verwendet, um die Klassen zu identifizieren, die als Einstiegspunkte für Ihr RIA verwendet werden dürfen. Die Identifizierung der Einstiegspunkte hilft, zu verhindern, dass unberechtigter Code ausgeführt wird, wenn eine JAR-Datei mehr als eine Klasse mit einer main () - Methode, mehreren Applet-Klassen oder mehreren JavaFX-Anwendungsklassen enthält. Setzen Sie dieses Attribut auf den vollständig qualifizierten Klassennamen, der als Einstiegspunkt für das RIA verwendet werden kann. Um mehr als eine Klasse anzugeben, trennen Sie die Klassen durch ein Leerzeichen, zB: Entry-Point: apps. test. TestUI apps. test. TestCLI Wenn das JAR-Manifest signiert ist und der Eintrag der Hauptklasse oder der Applet-Klasse angegeben ist Unterscheidet sich die JNLP-Datei oder der Anwendungsdeskriptor von der für das Entry-Point-Attribut angegebenen Klasse, dann wird die RIA blockiert. Wenn das Entry-Point-Attribut nicht vorhanden ist, kann jede Klasse mit einer main () - Methode oder einer Applet - oder JavaFX-Anwendungsklasse in der JAR-Datei zum Starten des RIA verwendet werden. Das Trusted-Only-Attribut wird verwendet, um zu verhindern, dass nicht vertrauenswürdige Klassen oder Ressourcen für ein Applet oder eine Anwendung geladen werden. Setzen Sie den Wert des Attributs auf true. Zum Beispiel: Dieses Attribut verhindert, dass eine privilegierte Anwendung oder ein Applet mit nicht vertrauenswürdigen Komponenten repurposed wird. Alle Klassen und Ressourcen in der Anwendung oder im Applet müssen signiert sein und alle Berechtigungen anfordern. Das Attribut Trusted-Library wird für Anwendungen und Applets verwendet, die nicht vertrauenswürdige Komponenten zulassen. Es wird kein Warndialog angezeigt, und eine Anwendung oder ein Applet können JAR-Dateien laden, die nicht vertrauenswürdige Klassen oder Ressourcen enthalten. Setzen Sie den Wert des Attributs auf true. Zum Beispiel: Dieses Attribut verhindert, dass Komponenten in einer privilegierten Anwendung oder einem Applet mit nicht vertrauenswürdigen Komponenten repurposed werden. Alle Klassen und Ressourcen in einer JAR-Datei, die dieses Manifest-Attribut enthält, müssen signiert sein und alle Berechtigungen anfordern. In einer gemischten Codeanwendung oder einem Applet müssen alle privilegierten Klassen und Ressourcen in JAR-Dateien enthalten sein, die das Attribut Trusted-Library enthalten. Dieses Attribut wird für Anrufe zwischen privilegiertem Java-Code-Sandbox-Java-Code verwendet. Wenn Sie JavaScript-Code, der Java-Code aufruft, finden Sie unter Caller-Allowable-Codebase-Attribut. Alle vertrauenswürdigen Bibliotheks-JARs werden in einen separaten dedizierten Klassenlader geladen, der für die Anwendung oder die Applet-Instanz eindeutig ist. Dieser Trusted-Library-Loader ist nun der übergeordnete Knoten des normalen Webstart - oder Applet-Klassenladers. Für die Abwärtskompatibilität mit dem ursprünglichen Suchauftrag arbeiten beide Lader zusammen, um einen gemeinsamen Klassenpfad zu implementieren. Im Einklang mit früheren Versionen, JAR-Dateien verwenden faul Download und werden geöffnet, wie erforderlich, um die gewünschten Klassen und Ressourcen zu finden. Code in einer JAR-Datei, die mit dem Manifest-Attribut der Trusted-Library markiert werden soll, muss möglicherweise etwas modifiziert werden, wenn es Aufrufe verwendet, die vom Klasse-Loader abhängig sind, z. B. die einzelne Parameterversion von Class. forName (). Class. getResource (). Und Class. getResourceAsStream (). Einige Varianten von java. util. ResourceBundle. getBundle (). Und alle anderen Methoden, die im Vergleich zu ihren unmittelbaren Anrufer definieren Loader. Änderungen müssen nur vorgenommen werden, wenn die angeforderte Klasse oder Ressource in einer JAR-Datei gefunden wurde, die keine Trusted-Library ist und daher vom normalen Webstart - oder Applet-Klassenlader geladen wird. Code in einer Trusted-Library kann durch Aufruf von Thread. currentThread () getContextClassLoader () den normalen Loader nachschlagen. Beachten Sie jedoch, dass es ungewöhnliche Umstände gibt, in denen getContextClassLoader () null zurückgeben kann. Dies kann beispielsweise der Fall sein, wenn der Garbage Collector einen JRE-Systemthread verwendet, um die Methode Object. finalize () einer nicht erreichbaren Instanz aufzurufen. Wenn Sie die Klasse Class. getResource () oder Class. getResourceAsStream () in ihre ClassLoader-Entsprechungen konvertieren müssen, müssen Sie den String-Parameter wie in der Dokumentation dieser beiden Methoden beschrieben anpassen. Wenn der ursprüngliche Ressourcenname mit begann. Dann war es ein absoluter Name und die Führung muss einfach entfernt werden. Andernfalls bestimmen Sie, ob die Klasseninstanz, die das Ziel des getResource-Aufrufs war, in einem benannten Paket ist. Wenn es ein Array ist, sollten Sie zuerst den zugrundeliegenden Komponententyp des Arrays bestimmen. Rufen Sie Class. getName () für die Klasse oder die Komponententypinstanz auf. Wenn der Klassenname einen enthält. Zeichen befindet, befindet es sich in einem benannten Paket, das dem ursprünglichen Ressourcennamen vorangestellt werden muss. Bestimmen Sie den Paketnamen, indem Sie alle Zeichen nach und einschließlich der Schleife entfernen. Charakter. Als nächstes ersetzen Sie alle verbleibenden. Zeichen mit Zeichen. Schließlich fügen Sie eine Schleife hinzu und fügen Sie die ursprüngliche Ressource-Name-Zeichenfolge. Dieser neue String kann nun an die ClassLoader-Version der Methoden getResource () oder getResourceAsStream () übergeben werden. Im Allgemeinen muss darauf geachtet werden, dass der Code in der vertrauenswürdigen Bibliothek sorgfältig und sicher geschrieben wird und ansonsten kompatibel ist, in einer separaten Klasse-Loader-Instanz von allen verbleibenden Gläsern geladen zu werden, die Teil der Anwendung sind und von dem geladen werden Der normale Lader. Weitere Informationen Weitere Informationen zum Verwenden von Manifestattributen zum Verwalten von Anrufen aus nicht vertrauenswürdigem Code finden Sie unter Mixing Privileged Code und Sandbox Code. Weitere Informationen finden Sie unter Verhindern, dass RIAs für die Verwendung von Manifest-Attributen zur Wiederherstellung verwendet werden, um sicherzustellen, dass die richtige Berechtigungsstufe und Codebasis verwendet werden. Informationen zum Hinzufügen von Attributen zur JAR-Manifestdatei finden Sie unter Ändern einer Manifestdatei im Java-Tutorial (1) Zuerst müssen Sie eine Textdatei mit allen Attributen erstellen, die Sie hinzufügen möchten. Meine Textdatei sieht wie folgt aus: Ich nannte sie addToManifest. txt. Offensichtlich müssen Sie die Parameter ändern, um Ihre Anwendungen zu entsprechen. (2) Als Nächstes müssen Sie dies dem Hauptjar und allen Bibliotheken hinzufügen. Der Befehl, dies zu tun ist: natürlich distmyApp. jar müssen auf was auch immer Ihre wichtigsten. jar ist. Youll müssen auch dies für alle Bibliotheken zu tun. (Anmerkung: unter Windows schrieb ich eine. bat Akte für dieses.) Sobald Sie das tun, sollten die Attribute zum. jar s geschrieben werden. Sie können die. jars in einem Zip-Manager (wie 7-Zip) öffnen, die Datei MANIFEST. MF extrahieren, sie in einem Texteditor öffnen und die aufgelisteten Attribute sehen. (3) Nach dem Hinzufügen der Attribute müssen Sie Ihre App zurücktreten. Der Befehl, das zu tun, ist: Youll auch Notwendigkeit, dies für alle Ihre Bibliotheken außerdem zu tun: Danach sollten Ihre Attribute addiert werden und Ihre. jar s sollten unterzeichnet werden ANMERKUNG: Sie müssen nur Ihre Bibliotheken einmal signieren, es sei denn Sie sind Ändern der Bibliotheksstruktur. D. H. Wenn Sie Ihre App aktualisieren, aber die Bibliotheken bereits ihre Manifeste geändert, signiert und implementiert haben, müssen Sie die Bibliotheken nicht resignieren, wenn Sie keine Bibliotheken von Ihrer App hinzufügen. ANMERKUNG 2: Die aktuelle Version von Netbeans fügt Codebase - und Permissions-Manifest-Attribute nur Ihrem primären. jar hinzu. Aber nicht zu Ihren Bibliotheken. Wenn Sie Netbeans verwenden, erhalten Sie eine Warnung aus dem Dienstprogramm jar, wenn Sie versuchen, ein doppeltes Manifest-Attribut hinzuzufügen. Es gibt einen Fehlerbericht in der Warteschlange, um diese feste netbeans. orgbugzillashowbug. cgiid234231 haben. EDIT: Die neueste Version von Netbeans (8.0) fügt jetzt alle drei (Codebase. Berechtigungen und Anwendungsname) dem Manifest hinzu. Antwortete 29 Okt 13 um 13:08 2astalavista, verstanden. Nur Problem ist, ist die Fehlende Application-Name-Nachricht eine Warnung, die nur in der Konsole angezeigt wird, nicht einen Fehler, der für den Benutzer manifestieren wird, es sei denn, sie sind clever genug, um die Konsole anzuzeigen. Darüber hinaus sollten wir uns vorstellen, ein Work-around vorzuschlagen, so dass der Endbenutzer sich von einer Sicherheitswarnung befreien kann, nur weil sie es für ein Ärgernis halten, auch wenn sie nicht in der Lage sind, das Problem endgültig zu beheben. Ich weiß nicht, was Oracle mit dieser Warnung erhoffte, aber es existiert aus einem Grund. Ndash ryvantage May 9 14 at 4:38 Wenn Sie Netbeans verwenden, legen Sie diese Attribute in Ihrer Datei nbprojectprojects: manifest. custom. codebase manifest. custom. permissions manifest. application. name. attribute Der letzte ist nur von Netbeans unterstützt 8.0 (siehe hier). Die anderen sollten auch in NetBeans 7.2 arbeiten. Ich set jnlp. mixed. code zu trustedonly zu, aber möglicherweise ist es nicht in Ihrem Fall angebracht. Sie können Ihre Datei jnlp-impl. xml auf eigene Gefahr ändern, wenn Sie nicht zu einer neueren Version von NetBeans wechseln können. Atulsms Vorschlag ist besser, wenn Sie nicht verwenden Netbeans.
Best Trading Books Der Erfolg des Handels muss auch aus vielen Blickwinkeln kommen. Wenn ich gefragt, welche Option Handel Bücher zu lesen, ist es kompliziert. In diesem Sinne, hier ist meine Liste der empfohlenen Handelsbücher. Bücher auf Optionen Trading Option Volatilität und Preise - Natenberg Dies ist mein Go-to-Buch für neue Option Trader. Natenberg macht einen guten Job erläutern Option Handel durch das Objektiv der Volatilität, die eine Perspektive viele denken nicht darüber denken, wenn sie Handel Optionen beginnen. Dies hat auch die vollständige Auflistung der grundlegenden Option Strategien und Management-Techniken mit ihnen verbunden. Alles von Jeff Augen lohnt sich. Dieser besondere Text geht ein bisschen mehr in die nasty Bits der Optionen Handel - nämlich die Definition Volatilität und Verwaltung von Trades. Dies geht ein bisschen mehr in die quantitative Seite, die Spaß machen kann, wenn Sie Ihren Weg um Excel oder R. kennen. Sind Sie bereit, gehen Sie hinunter das Kani...
Comments
Post a Comment