Wildfly: Verschlüsseln Sie das Kennwort und den Benutzernamen für die Datenbank
Ich würde gerne mit der hand über eine webapplication, einige Leute, aber diese Menschen sollten nicht erlaubt, hat Zugriff auf die Datenbank mit einigen Extras. Mit der webapplicaton und im hintergrund die Datenbank ist ok.
Wildfly hat eine config mit diesen code:
<xa-datasource jndi-name="java:jboss/datasources/ExampleXADS" pool-name="ExampleXADS">
<driver>h2</driver>
<xa-datasource-property name="URL">jdbc:h2:mem:test</xa-datasource-property>
<xa-pool>
<min-pool-size>10</min-pool-size>
<max-pool-size>20</max-pool-size>
<prefill>true</prefill>
</xa-pool>
<security>
<user-name>sa</user-name>
<password>sa</password>
</security>
</xa-datasource>
Wie Sie sehen können, gibt es auch den Benutzernamen und das Kennwort zur Verfügung. Wie ist es möglich, um auszuschließen /verschlüsseln diese, so dass nur der administrator kennt das Passwort für die Datenbank.
Das gleiche auch für den gesamten application server - es gibt auch Benutzer und Passwort.
Wie kann ich dies tun?
BEARBEITEN:
Die "Kunden" erhalten die gesamte Applikation inklusive webserver-Konfiguration. (Wilfly und .Krieg - Datei)
Nur für die Speicherung der software-Schlüssel in der Datenbank.
Die erste Zeit, wenn der "Kunde" start der web-Anwendung, wird er aufgefordert, so geben Sie den Lizenz-Schlüssel.
Nach der Eingabe des Lizenzschlüssel wird ein Webservice aufgerufen werden. Der Rückgabewert ist "false" oder "true" (ist der Schlüssel gültig ist, oder ist der Schlüssel nicht gültig ist)
Meine erste Idee war, die zum speichern der flag in der Datenbank. Aber wenn ein Benutzer Zugriff auf die Datenbank hat, kann er manipulieren Sie diese Flagge auf seiner eigenen.
Gibt es irgendeine andere Möglichkeit, ein flag für "der software-Schlüssel ist gültig" anstatt zu speichern das flag in der Datenbank.
Irgendwelche Ideen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie verwenden Sie die Sicherheit, Domäne, um über diese, könnte es einige spezifische änderungen für Wildfly aber für JBoss 7.1.1, hier ist was Sie tun müssen.
Finden Sie die Lage des jboss-logging-3.1.0.GA.jar in Ihrer JBoss/Widlfy server. Im Falle des JBoss-7.1.1 es sollte so etwas wie - modules\org\jboss\logging\main\jboss-logging-3.1.0.GA.jar
Finden Sie die Lage des picketbox-4.0.7.Final.jar
Überprüfen Sie, ob die picketbox jar hat org.picketbox.datasource.Sicherheit.SecureIdentityLoginModule Klasse.
Führen Sie den folgenden Befehl aus JBoss server-root-Ordner zu verschlüsseln Sie Ihre datasource-Verbindung-Passwort
java -cp modules\org\jboss\logging\main\jboss-logging-3.1.0.GA.jar;modules\org\picketbox\main\picketbox-4.0.7.Final.jar org.picketbox.datasource.Sicherheit.SecureIdentityLoginModule PasswordXYZ
Holen Sie sich die Ausgabe von text und in der standalone.xml fügen Sie folgenden Sicherheits-Domäne unter Elemente:
Verwenden Sie diese Sicherheits-Domäne, in der datasource-element wie folgt:
Referenz-Link: http://middlewaremagic.com/jboss/?p=1026
wont fix
weil "Das "verschlüsseln Sie die Datenbank" Passwort, was gibt es für die übergabe dumme security-audits. Letztlich wird es ein Passwort von irgendeiner Art irgendwo da muss das system zu entschlüsseln, das Passwort zu senden an die Datenbank. Es wird immer leicht sein für ein relativ erfahrener Programmierer, um diesen hack."Ist es nicht möglich. Wenn die web-Anwendung muss in der Lage sein zu entschlüsseln, das Passwort zur Nutzung der Datenbank, wer auf dem server das gleiche tun können.
Wenn Sie den Zugriff beschränken möchten, halten Sie den server unter Ihre Kontrolle und lassen Sie den Zugriff nur über ein web-front-end.
(Und selbst wenn es möglich war, sinnvoll zu verschlüsseln, wenn Sie haben server-Zugriff können Sie sich trivial kopieren der Datenbank-Dateien auf Ihren Arbeitsstationen oder fügen Sie neue Benutzerkonten der Datenbank-server).