gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-11-01 02:24:09 24 4
gpt4 key购买 nike

我们如何防止 Java 应用程序中的框架注入(inject)?

就像在渗透测试中一样,据发现,如果黑客起草了一个演示 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>

现在黑客能够检索应用程序中的数据。如何阻止这种情况?

最佳答案

这是点击劫持攻击:https://www.owasp.org/index.php/Clickjacking防止它的最简单方法是添加值为“DENY”的 header “X-Frame-Options”。这可以使用 filter 来完成.在您的 web.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);
}

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

关于java - 如何防止 java 应用程序中的帧注入(inject)(点击劫持)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29845714/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com