django-xss攻击原理与防范

1、跨站脚本攻击(XSS)

XSS是一种常常出如今web应用中的计算机安全漏洞,它容许恶意web用户将代码植入到提供给其它用户使用的页面中。也属一种注入攻击,注入本质上就是把输入的数据变成可执行的程序语句好比这些代码包括HTML代码和客户端脚本。html

2、危害:

  • 盗取各种用户账号,如机器登陆账号、用户网银账号、各种管理员账号
  • 控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力
  • 盗窃企业重要的具备商业价值的资料
  • 非法转帐等

3、原理:

一、反射型xss攻击

通常的浏览器与服务器交互都是,客户端向服务器发送一条请求,类http://ww.bigshop.com/product/list/?q=手机,也就是说客户向目标站点发送了一条查询全部手机的请求,而后服务器向客户端返回相关数据,这是正常的。而且手机这一关键词也会被从新返回给浏览器端的用户,这就使得xss攻击有隙可乘。黑客将http://ww.bigshop.com/product/list/?q=这条包含恶意脚本的连接经过某种方式发送给用户,那么用户一旦点击这条连接,就会向目标站点发送查询的请求,这固然是查询不到任何结果,可是这段JavaScript的脚本就会从后台转了一圈又回到浏览器,这样浏览器就会执行这段代码,也就是是获取用户的cookie值。一旦黑客拿到你的cookie值,基本上就至关于能够模拟你的身份。
能够看到,攻击者巧妙地经过反射型XSS的攻击方式,达到了在受害者的浏览器上执行脚本的目的。因为代码注入的是一个动态产生的页面而不是永久的页面,所以这种攻击方式只在点击连接的时候才产生做用,这也是它被称为非持久型XSS的缘由。web

二、存储型xss攻击

存储型xss攻击与反射型xss攻击的区别在于,xss攻击已经存储在服务器的数据库上,能够长期的返回给浏览器端。例如当客户A在博客园的博客或者评论区写入一段js恶意脚本,这段脚本就会永久存储到博客园的数据库,一旦当有其余用户请求查看这条博客或者评论,博客园就会将相应的数据返回给用户,固然这段js恶意脚本也会被返回给用户的浏览器并执行。sql

4、防御

  • 字符过滤:对用户的请求不管是url仍是表单提交的内容都进行长度检查和对特殊字符进行过滤
  • cookie方面:避免在cookie中放入重要敏感信息
  • 表单提交:尽可能使用post的方式提交表单而不是get方式

不只服务器拿到用户的请求进行过滤,在服务器将数据返回给浏览器后,浏览器也会再一次进行防御。数据库

5、其余攻击

csrf攻击
sql攻击浏览器

相关文章
相关标签/搜索