跨站脚本攻击—XSS

 

1.  跨站脚本攻击—XSS

https://blog.csdn.net/FE_dev/article/details/100876661?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-100876661-blog-118034947.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-100876661-blog-118034947.pc_relevant_default&utm_relevant_index=2

 

XSS 介绍
XSS 是跨站脚本攻击(Cross Site Scripting)的简写,但是从首写字母命名的方式来看,应该取名 CSS,但这样就和层叠样式表(Cascading Style Sheets,CSS)重名了,所以取名为 XSS。

XSS 攻击,一般是指攻击者通过在网页中注入恶意脚本,当用户浏览网页时,恶意脚本执行,控制用户浏览器行为的一种攻击方式。

XSS 危害
窃取用户Cookie,获取用户隐私,盗取用户账号。

劫持用户(浏览器)会话,从而执行任意操作,例如进行非法转账、强制发表日志、发送电子邮件等。

强制弹出广告页面,刷流量等。

传播跨站脚本蠕虫,网页挂马等。

结合其他漏洞,如 CSRF 漏洞,实施进一步的攻击。

 

 

2.1详解java解决XSS攻击常用方法总结

https://www.jb51.net/article/210021.htm

2.2Java防止XSS攻击

https://blog.csdn.net/u010786200/article/details/122121071

2.3 XSS过滤器Filter实现全过程

https://blog.csdn.net/qq_38118138/article/details/118081903

 

 

CSRF攻击与防御 *

https://blog.csdn.net/weixin_40482816/article/details/114301717

 CSRF攻击防御,JAVA程序利用token前后端验证每一次请求进行防御**********************************

https://blog.csdn.net/tengchengbaba/article/details/108365545

 

Java 安全之:csrf防护实战分析

http://t.zoukankan.com/volcano-liu-p-11301057.html

 

Java 安全之:csrf攻击总结 *

http://wjhsh.net/volcano-liu-p-11188748.html

 

 

 

__________________________________________________________________

浏览器缓存禁用—Cache-Control:no-cache、Pragma:no-cache&Expires:0 

Cache-Control: no-cache:这个很容易让人产生误解,使人误以为是响应不被缓存。实际上Cache-Control: no-cache是会被缓存的,只不过每次在向客户端(浏览器)提供响应数据时,缓存都要向服务器评估缓存响应的有效性。

Cache-Control: no-store:这个才是响应不被缓存的意思。

Pragma: no-cache:跟Cache-Control: no-cache相同,

Pragma: no-cache兼容http 1.0 ,Cache-Control: no-cache是http 1.1提供的。

因此,Pragma: no-cache可以应用到http 1.0 和http 1.1, 而Cache-Control: no-cache只能应用于http 1.1.

 

 

CSRF(跨站请求伪造) 漏洞与预防(附代码)**********************************

https://blog.csdn.net/SongSir001/article/details/98182051

 

javaweb使用过滤器防止图片盗链 ------请求头referer的使用
在web.xml文件中如下配置:

 
<filter> 
<filter-name>SimpleFilter</filter-name> 
<filter-class>cn.SimpleFilter</filter-class> 
</filter>
 
<filter-mapping> 
<filter-name>SimpleFilter</filter-name> 
<url-pattern>/images/*</url-pattern> 
</filter-mapping>



 

在servlet过滤器代码如下: 
 
package cn; 
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.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
 
 
public class SimpleFilter extends HttpServlet implements Filter { 
 
private static final long serialVersionUID = 1L; 
private FilterConfig filterConfig;
 
 
 
public void init(FilterConfig config) { 
this.filterConfig = config; 
}
 
 
 
public void doFilter(ServletRequest req, ServletResponse res,FilterChain chain) throws ServletException, IOException { 
 
HttpServletRequest request = (HttpServletRequest) req; 
HttpServletResponse response = (HttpServletResponse) res;
 
// 禁止缓存 
response.setHeader("Cache-Control", "no-store"); 
response.setHeader("Pragrma", "no-cache"); 
response.setDateHeader("Expires", 0);
 
// 链接来源地址 
String referer = request.getHeader("referer"); 
System.out.println("refer is"+referer);
System.out.println("serverName is"+request.getServerName());
 
if (referer == null || !referer.contains(request.getServerName())) {

/**
* 如果 链接地址来自其他网站,则返回错误图片 
*/ 
request.getRequestDispatcher("/error.jsp").forward(request, response);
 
} 
else {
 
/** 
* 图片正常显示 
*/
 
chain.doFilter(request, response); 
} 
}
 
 
 
public void destroy() { 
this.filterConfig = null; 
}
 
 
}

 

posted @ 2022-06-01 17:24  kelelipeng  阅读(198)  评论(0编辑  收藏  举报