Heute werden wir über Java Anti-Diebstahl-Links sprechen. Es ist nutzlos, mehr darüber zu sprechen, und wir werden die Anwendungsfälle direkt verwenden.
Das hier verwendete Tool ist die Berichterstattung Software FineRereport, die mit einem Entscheidungssystem ausgestattet ist (ein Web-Front-End-Display-System, das hauptsächlich für die Berechtigungssteuerung verwendet wird) und kann den Java-Anti-Diebstahl-Link verwenden, um Seitenberechtigungen zu erreichen.
Bei direkter Eingabe der Berichts -URL im Browser ist die Header -Datei leer. Daher können Sie beim Zugriff zwei Urteile fällen: ob die Header -Datei leer ist und zu welcher Seite zu springen ist und wenn sie nicht übereinstimmt, springen Sie einfach zur Fehlerseite.
Was ist ein Referator?
Der Referer bezieht sich hier auf ein Feld im HTTP -Header, das auch als HTTP -Quelladresse (HTTP -Referator) bezeichnet wird und der angibt, wo auf die aktuelle Webseite verlinkt werden soll, und das Format ist eine URL. Mit anderen Worten, auf der HTTP Referer-Header-Webseite kann überprüfen, woher Besucher kommen, wodurch häufig Anfragen gefälschter Site-Anfragen umgehen.
Was ist ein leerer Referater und wann wird ein leerer Referator angezeigt?
Zunächst definieren wir den leeren Referator als Inhalt des Referentenheaders leer, oder eine HTTP -Anforderung enthält überhaupt nicht den Referer -Header.
Wann wird HTTP -Anfragen das Referentenfeld nicht enthalten? Nach der Definition des Referers besteht seine Funktion an, anzugeben, wo eine Anforderung verknüpft ist. Wenn eine Anforderung nicht durch einen Verbindungskontakt generiert wird, müssen natürlich keine Linkquelle der Anforderung angegeben werden.
Wenn Sie beispielsweise die URL -Adresse einer Ressource in der Adressleiste des Browsers direkt eingeben, enthält diese Anforderung nicht das Referer -Feld, da dies eine HTTP -Anforderung "aus dünner Luft erzeugt" ist und nicht von einem Ort von einem Ort verknüpft ist.
Was ist der Unterschied zwischen dem Erlauben leerer Referatoren und dem nicht zulässigen Referator in der Anti-Diebstahl-Ketteneinstellung?
In der Anti-Diebstahl-Kette ist es möglich, wenn ein leerer Referator über die Browseradressleiste direkt auf die Ressourcen-URL zugreifen kann.
Wenn jedoch kein leerer Referater zulässig ist, ist auch der direkte Zugriff über den Browser verboten.
Betriebsschritte
1. Klassendatei hinzufügen
Schreiben Sie eine Klassendatei, um festzustellen, ob die Header -Datei leer ist. Der Code lautet wie folgt:
Paket com.fr.test; import java.io.ioxception; import java.io.printwriter; import Javax.servlet.filter; import Javax.servlet javax.servlet.servletResponse; import Javax.servlet.http.httpServletRequest; import Javax.servlet.http.httpServletRespect; void Dofilter (ServletRequest Request, ServletResponse -Antwort, Filterchain -Kette) löscht IOException, ServletException {httpServletRequest req = (httpServletRequest) Anfrage; HttpServletResponse resp = (httpServletResponse) Antwort; String referer = req.getheader ("referer"); // Die folgende IP -Adresse ist eine normale Seitenanforderung if (null! = Referer && (referer.trim (). StartsWith ("http: // localhost: 8033") || referer.trim (). Anfrage "+Referer); chain.dofilter (req, resp); // Folgendes ist zu springen, wenn eine Anfrage für die Seite nicht normal ist} else {System.out.println ("Kettenstehlen"+Referer); req.getRequestDispatcher ("/ldaplogin.jsp"). Forward (req, resp); }} public void init (filterconfig arg0) löst servleTexception {// Todo automatisch generierter Methode Stub}} aus}} aus}}Kompilieren Sie dodo.java in die Klassendatei und legen Sie sie in das %tomcat_home %/weberport/web-inf/classes/com/fr/Test-Verzeichnis ein.
2. Ändern Sie die Datei web.xml
Öffnen Sie die Datei web.xml unter %tomcat_home %/webapps/weberport/web-inf, konfigurieren Sie einen Filterfilter und führen Sie die Filterung aus, wenn der Berichtserver angezeigt wird. Der Code ist wie folgt:
<Filter> <filter-name> Autheller </filter-name> <filterklasse> com.fr.test.dodo </filter-class> </filter> <filter-mapping> <filter-name> authfilter </filter-name> <url-pattern>/reportierverver </url-pattern> </filter-maping>
Es kann in zwei Schritten erfolgen. Wenn es sich um einen gestohlenen Link handelt, springt es auf die oben genannte Seite mit Ldaplogin-Fehler. Hier gibt es keine LDAPLOIGN-Seite, sodass sie direkt auf 404 springt. Wenn Sie Datenberechtigungen implementieren möchten, können Sie eine einzelne Anmelde- oder Sitzungsinjektion verwenden.
Effektivitätstest
Bereiten Sie zwei HTML -Dateien vor
Angenommen, Hello.html ist die richtige URL
<html> <body> <p> test </p> <a href = "http: // localhost: 8033/weberport/reportServer? reportlet = Demo%2FNewchart%2fothers%2FloGarithmic
Angenommen, Steel.html ist die URL zum Stehlen von Links
<html> <body> <p> Test, falsche Linkadresse </p> <a href = "http: // localhost: 8033/weberport/reportServer? reportlet = Demo%2FNewchart%2Fther%%2Floglarithmic_axis.cpt & op = Write"> Anti-Theft-Ketten-Ketten-Test </a> </body> </body> </body> </body> </html "
Situation 1
Springen Sie durch Hello.html, der Sprungverbind
Situation 2
Springen Sie durch Steel.html, der Sprungverbindung ist falsch, dh Referer ist nicht leer und fehler
Situation drei
Direkter Zugriff auf die URL -Adresse, dh Referaterin, ist leer
Das obige Beispiel für die Anwendung der Java-Anti-Diebstahl-Kette im Bericht (empfohlen) ist der gesamte Inhalt, den ich mit Ihnen teile. Ich hoffe, Sie können Ihnen eine Referenz geben und ich hoffe, Sie können wulin.com mehr unterstützen.