Evite hacer clic para la aplicación web Java cuando se abre en la misma sesión

Estoy tratando de manejar clickjacking para una aplicación web java. Obtuve una solución de Clickjacking Defense Cheat Sheet

He agregado un filtro en web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4"
         xmlns="http://java.sun.com/xml/ns/j2ee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee                                        http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <display-name>OWASP ClickjackFilter</display-name>
    <filter>
        <filter-name>ClickjackFilterDeny</filter-name>
        <filter-class>org.owasp.filters.ClickjackFilter</filter-class>
        <init-param>
            <param-name>mode</param-name>
            <param-value>DENY</param-value>
        </init-param>
    </filter>

    <filter>
        <filter-name>ClickjackFilterSameOrigin</filter-name>
        <filter-class>org.owasp.filters.ClickjackFilter</filter-class>
        <init-param>
            <param-name>mode</param-name>
            <param-value>SAMEORIGIN</param-value>
        </init-param>
    </filter>

    <!--  use the Deny version to prevent anyone, including yourself, from framing the page -->
    <filter-mapping>
        <filter-name>ClickjackFilterDeny</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>


</web-app>

Mi clase de filtro se parece a

package org.owasp.filters;
import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;

public class ClickjackFilter implements Filter
{

    private String mode = "DENY";

    /**
     * Add X-FRAME-OPTIONS response header to tell IE8 (and any other browsers who
     * decide to implement) not to display this content in a frame. For details, please
     * refer to http://blogs.msdn.com/sdl/archive/2009/02/05/clickjacking-defense-in-ie8.aspx.
     */
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        HttpServletResponse res = (HttpServletResponse)response;
        res.addHeader("X-FRAME-OPTIONS", mode );
        chain.doFilter(request, response);
    }

    public void destroy() {
    }

    public void init(FilterConfig filterConfig) {
        String configMode = filterConfig.getInitParameter("mode");
        if ( configMode != null ) {
            mode = configMode;
        }
    }

}

Ahora el problema al que me enfrento es que esta solución solo funciona si abro la página web en una nueva sesión cada vez.

La solución falla si intento enmarcar la aplicación en la misma sesión.

Respuesta 1

Quiero getText () usando By.id o By.cssSelector. Logré resolver mi problema haciendo getAttribute ("valor"), pero no entiendo por qué getText () no funciona como lo esperaba, y podría necesitar ...

Tengo datos de BehaviorSubject que contienen datos reales (o tal vez nada, si no se le ha emitido nada). Quiero suscribirme solo para un elemento que emite, es decir, el valor observado actual o ...

Private String isChecked (ID de cadena) {id = "R.id." + id; int ID = getResources (). getIdentifier (id, "id", "com.example.android.justjava"); CheckBox checkBox = (CheckBox) findViewById (ID); ...

Nota: No marque esta pregunta como un duplicado. He pasado por varias preguntas similares pero no pude encontrar una respuesta satisfactoria. He estado trabajando en una aplicación que usa Sqlite ...