Python中文网

一个关于 编程问题的解答网站.

有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

jsp如何防止java应用程序中的帧注入(点击劫持)?

如何防止Java应用程序中的帧注入

就像渗透测试一样, 我们发现,如果黑客起草了一个演示html页面, 在那一页里他用了iframe, 其中包含工作应用程序的URL, 他/她可以通过该URL/请求(在iframe中创建)查看数据

假设这是黑客文件,test。html:

<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"   \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head><body>
<iframe id="inner" src="http://hostname:8080/Application_Name/ABC/DEF/SomePage.jsp?ABC=QWERTYL&XYZ=1&CDE=24" width="600" height="400" scrolling="yes">

</iframe>
</body>
</html>

现在,黑客能够在应用程序中检索数据。如何阻止这一切


共 (1) 个答案

  1. # 1 楼答案

    这是点击劫持攻击:https://www.owasp.org/index.php/Clickjacking 防止它的最简单的方法是添加标题“X-Frame-Options”和值“DENY”。这可以使用filter实现。在你的网站上注册。xml,并使用如下代码:

    @Override
    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException,
                ServletException {
        HttpServletResponse response = (HttpServletResponse) resp;
        response.addHeader("X-Frame-Options", "DENY");    
        chain.doFilter(req, resp);
    } 
    

    所有现代浏览器都支持此标题,但为了保护使用传统浏览器的用户,您还需要在UI中使用防御性javascript。更多详细信息:https://www.owasp.org/index.php/Clickjacking_Defense_Cheat_Sheet