XSS和CSRF攻击方式及防御

1.什么是 XSS 攻击?如何预防?
  XSS攻击涉及到三方:攻击者,用户,web server。用户是通过浏览器来访问web server上的网页,XSS攻击就是攻击者通过各种办法,在用户访问的网页中插入自己的脚本,让其在用户访问网页时在其浏览器中进行执行。攻击者通过插入的脚本的执行,来获得用户的信息,比如cookie,发送到攻击者自己的网站(跨站了)。所以称为跨站脚本攻击。XSS可以分为反射型XSS和持久性XSS,还有DOM Based XSS。(一句话,XSS就是在用户的浏览器中执行攻击者自己定制的脚本。)
存在原因:
  XSS 存在的根本原因是,对URL中的参数,对用户输入提交给web server的内容,没有进行充分的过滤。如果我们能够在web程序中,对用户提交的URL中的参数,和提交的所有内容,进行充分的过滤,将所有的不合法的参数和输入内容过滤掉,那么就不会导致“在用户的浏览器中执行攻击者自己定制的脚本”。


攻击的方法:
  a.对输入(和URL参数)进行过滤,对输出进行编码。
  b.对输入和URL参数进行过滤(白名单和黑名单)
  c.对输出进行编码

防御: 使用 OWASP AntiSamy Project 和 OWASP ESAPI for Java 来防御 XSS(还有客户端的esapi4js: esapi.js)

针对攻击的3种方法进行防御

2.什么是 CSRF 攻击?如何预防?
  CSRF全称 Cross Site Request Forgery, 跨站域请求伪造.CSRF是一种夹持用户在已经登陆的web应用程序上执行非本意的操作的攻击方式。相比于XSS,CSRF是利用了系统对页面浏览器的信任,XSS则利用了系统对用户的信任。

目前防御 CSRF 攻击主要有三种策略:
  a.验证 HTTP Referer 字段;
  b.在请求地址中添加 token 并验证;
  c.在 HTTP 头中自定义属性并验证。

posted on 2019-03-02 15:06  Wpb-risingsun  阅读(211)  评论(0)    收藏  举报

导航