java 跨站请求伪造攻击_跨站脚本攻击(XSS)和跨站请求伪造攻击(CSRF)

XSS攻击原理

xss诱使Web站点执行本来不属于它的代码,而这些代码由攻击者提供、为用户浏览器加载。攻击者利用

这些代码执行来获取信息。从本质上来讲,XSS漏洞终究原因是由于网站的Web应用对用户提交请求参数未做充

分的检查过滤。

例子:

我们可以给输入框输入:Java,如果网站存在安全漏洞的话就会出现显示“Java”,如果将其换成不安全脚本将会产生危害

危害

盗取用户的各类敏感信息,如账号密码

读取、篡改、添加、删除企业敏感数据

读取企业重要的具有商业价值的

控制受害者机器向其它网站发起攻击

如何预防

Javascript来对字符进行过滤,将一些如%、< 、>、 [、]、{、}、;、&、+、-、"、(、) 的字符过滤掉。

使用HTML和URL编码

CSRF攻击原理

CSRF通过伪装来自受信任用户的请求来利用受信任的网站,可以XSS来获取受信任用户tookie来伪装为受信任用户。

例子:

(1)若果一个论坛网站的发帖使用的是get请求我们JS把发贴内容拼接成目标URL并访问

http://example.com/bbs/create_post.php?title=我是脑残&content=哈哈,只要你点击了这个链接便会在用你的用户名在论坛发这样一个帖子。为什么会用你的用户名发帖呢,这是因为多窗口浏览器问题。

(2)图片链接有获取tookie的js代码,可以获取你的cookie冒充你。

多窗口浏览器问题:

多窗口浏览器永远都只有一个进程,各窗口的会话是通用的,即看新闻的窗口发请求到Blog是会带上我在blog登录的cookie。

危害

同XSS攻击

如何预防

检查访问源的报头,检查refer

使用秘密的无法预测的验证符号

使用定制的HTTP报头

限制验证cookie的到期时间,时间越短越安全,但是用户越不方便

cookie和session机制

Web应用程序是使用HTTP协议传输数据,而HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这就意味着服务器无法从连接上跟踪会话。为此引入cookie和session机制。

cookie实际上是一小段放在客户端的文本信息,信息按照K——V的形式存放,比如常见的保存用户名、密码方便下次登录。

session是服务器端使用的一种记录客户端状态的机制,作用是给客户端指定唯一通行证——sessionId,同时保存在“客户档案”中。

当客户端和服务器首次建立连接时,服务器就会给客户端分配唯一通行证——sessionId,同时session也会在本地建立一个客户档案,当下次客户端请求的时候只需要验证sessionId。

扩展阅读:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值