前端攻击之xss和csrf

被动攻击:

 

  • 诱发用户触发陷阱启动发送。
  • 利用用户身份攻击企业内部网络。

主动攻击:

 

  • 攻击者直接访问web应用,就能发起对web应用的攻击,比如sql注入(对数据运行非法sql产生的泄露机密信息)和os命令注入(通过程序运行非法操作系统指令,在能调用shell函数的地方,因为web通过shell来调用操作系统指令)。

xss:(Cross Site Scripting,为了区别于css而叫xss)跨站脚本攻击,被动攻击。

通过存在漏洞的web运行非法的js或html标签,动态创建的html可能有漏洞。

影响:

 

  • 利用虚假表单得到用户信息
  • 利用脚本窃取用户cookie,发送恶意请求
  • 显示伪造的文章或图片

防御:

 

  • 过滤输入,转义输出
  • 避免使用eval,new Function等执行字符串的方法
  • 在服务器设置cookie的httpOnly属性,cookie.setHttpOnly(true);加上之后js无法读取cookie

 

存储型XSS:

持久化,代码是存储在服务器中的,如在个人信息或发表文章等地方,加入代码,如果没有过滤或过滤不严,那么这些代码将储存到服务器中,用户访问该页面的时候触发代码执行。这种XSS比较危险,容易造成蠕虫,盗窃cookie等。

反射型XSS:

非持久化,需要欺骗用户自己去点击链接才能触发XSS代码(服务器中没有这样的页面和内容),一般容易出现在搜索页面。

 

csrf(Cross-site request forgery):跨站请求伪造,被动攻击。

指攻击者通过设置好的陷阱,强制对已完成认证的用户进行非预期的个人信息或设定信息等某些状态更新。

攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮件、发消息,盗取你的账号,添加系统管理员,甚至于购买商品、虚拟货币转账等。

实例:

管理员登录。攻击者给管理员页面添加一个隐藏表单的页面,诱使其打开,然后直接登录。(通过url传递)

防御:

 

  • 检测http头部referer字段(记录http请求的来源地址)是否同域名
  • 避免登录的session长时间存储在客户端中
  • 关键请求使用验证码或者token机制(用户登录后产生token放于session中,每次http请求将token(cache-control的cache-extension)拿出)

 

你可能感兴趣的:(前端攻击之xss和csrf)