Hoje falaremos sobre os links anti-roubo Java. É inútil falar mais sobre isso e usaremos diretamente os casos de aplicativos.
A ferramenta usada aqui é o software de relatório FineReport, equipado com um sistema de tomada de decisão (um sistema de exibição front-end da Web, usado principalmente para controle de permissão), e pode usar o link anti-roubo Java para obter permissões de página.
Ao inserir diretamente o URL do relatório no navegador, seu arquivo de cabeçalho está vazio. Portanto, você pode fazer dois julgamentos ao acessar: se o arquivo de cabeçalho está vazio e para qual página pular e, se não corresponde, basta pular para a página de erro.
O que é um referente?
O referente aqui se refere a um campo no cabeçalho HTTP, também conhecido como endereço de origem HTTP (referente HTTP), que é usado para indicar onde vincular a página atual da Web e o formato é URL. Em outras palavras, a página da web do cabeçalho do referente HTTP pode verificar de onde vêm os visitantes, que geralmente é usado para lidar com solicitações falsas de sites.
O que é um referente vazio e quando será exibido um referente vazio?
Primeiro, definimos o referente vazio como o conteúdo do cabeçalho do referente está vazio, ou uma solicitação HTTP não contém o cabeçalho do referente.
Então, quando as solicitações HTTP não incluirão o campo do referente? De acordo com a definição de referente, sua função é indicar onde uma solicitação está vinculada. Quando uma solicitação não é gerada por um contato de link, naturalmente não há necessidade de especificar a fonte de link da solicitação.
Por exemplo, se você inserir diretamente o endereço da URL de um recurso na barra de endereços do navegador, essa solicitação não incluirá o campo do referente, porque essa é uma solicitação HTTP "gerada do ar" e não está vinculado a partir de um lugar.
Na configuração da cadeia anti-roubo, qual é a diferença entre permitir o referente vazio e não permitir o referente vazio?
Na cadeia anti-roubo, se um referente vazio for permitido, é possível acessar diretamente o URL do recurso através da barra de endereço do navegador;
No entanto, se o referente vazio não for permitido, o acesso direto através do navegador também será proibido.
Etapas de operação
1. Adicione o arquivo de classe
Escreva um arquivo de classe para determinar se o arquivo de cabeçalho está vazio, o código é o seguinte:
pacote com.fr.test; importar java.io.ioException; importar java.io.printwriter; importar javax.servlet.filter; importar javax.servlet.filterchain; import javax.Servlet.FilterCofig; import Javax.Servlet.ServLeTexception; importação javrax.FilterCofig; import Javax.Servlet.ServLeTexception; importação javrax; javax.servlet.servletResponse; importar javax.servlet.http.httpServletRequest; importar javax.servlet.http.httpServletResponse; importação javax.servlet.http.httpsess; Dofilter (Solicitação de servletRequest, resposta servletResponse, cadeia de filtro) lança ioexception, servletexception {httpServletRequest req = (httpServletRequest) solicitação; HttpServletResponse resp = (httpServletResponse); Referente de string = req.getheader ("referente"); // O endereço IP abaixo é uma solicitação de página normal if (null! = Referer && (referenciador.trim (). StartSwith ("http: // localhost: 8033") || reference.trim (). solicitar "+referente); Chain.Dofilter (req, resp); // o seguinte é pular quando uma solicitação para a página não é normal} else {System.out.println ("roubo de cadeia"+referente); req.getRequestDispatcher ("/ldaplogin.jsp"). Forward (req, resp); }} public void init (filterConfig arg0) lança servletexception {// TODO Auto-Gerated Method Stub}}Compile DODO.java no arquivo de classe e coloque-o no %TOMCAT_HOME %/WebReport/Web-Inf/Classes/Com/FR/Diretório de teste.
2. Modifique o arquivo web.xml
Abra o arquivo web.xml em %tomcat_home %/webapps/webreport/web-inf, configure um filtro de filtro e execute filtragem quando o relatórios aparecer. O código é o seguinte:
<filter> <filter-name> AuthFilter </filter-Name> <filter-Class> com.fr.test.dodo </filter-Class> </ftrhter> <filter-Mapping> <filter-name> authfilter </filter-name> <url-Pattern>/relatórios </url-pattern> </filter-mapping>
Isso pode ser feito em duas etapas. Se for um link roubado, ele saltará para a página de erro LDAPlogin acima mencionada. Não existe uma página LdaPloign aqui, para que ela salte diretamente para 404. Se você deseja implementar permissões de dados, poderá usar uma única injeção de assinatura ou sessão.
Teste de eficácia
Prepare dois arquivos HTML
Suponha Hello.html é o URL correto
<html> <body> <p> teste </p> <a href = "http: // localhost: 8033/webreport/reporterver? reportlet = Demo%2fnewChart%2Fothers%2flogarithmic_axis.cpt & op = Write"> Teste anti-theft </aa>
Suponha que Steel.html seja o URL para roubar links
<html> <body> <p> teste, endereço de link errado </p> <a href = "http: // localhost: 8033/webreport/reportserver? reportlet = demo%2fnewchart%2fothers%2flogaritmic_axis.cpt &/write"> anti-theft test <a-theft <a>
Situação 1
Pule pelo Hello.html, o link de salto está correto, ou seja, o referente não está vazio e correto
Situação 2
Salte a aço.html, o link de salto está errado, ou seja, o referente não está vazio e erro
Situação três
Acesso direto ao endereço da URL, ou seja, o referente está vazio
O exemplo acima da aplicação da cadeia anti-roubo Java no relatório (recomendado) é todo o conteúdo que compartilho com você. Espero que você possa lhe dar uma referência e espero que você possa apoiar mais o wulin.com.