csrf和xss

维基百科解释

XSS:跨站脚本(Cross-site scripting,通常简称为XSS)是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。这类攻击通常包含了HTML以及用户端脚本语言。

CSRF:跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。

解释

XSS:是实现csrf的诸多途径中的一种(其中还有命令行模式,直接伪造请求等),xss偏向于代码实现,实际上就是html注入

CSRF:偏向于结果,冒充用户身份发起请求,要完成一次csrf攻击需要用户登录受信任的网站A,在不登出A的情况下访问危险网站B

具体场景

XSS:在某个论坛网站,提交了含有js代码的评论,假设该网站未过滤直接存入数据库,当其他用户访问含有该评论的页面时,页面会直接执行该评论中的代码,如

1
2
3
while(true){
alert('hello world');
}

这样就会导致用户无法进入正常的操作,假如代码中含有危险逻辑,可想而知。目前有一种electron的技术,其核心是使用chrome的内核构建出自定义浏览器,像这种就可以在访问某个网站时渲染html注入js脚本执行。

CSRF:假如你登录了某个银行网站,而当你访问某个危险网站时,里面嵌入了一个form表单提交,恰好是转账操作,此时你的账户就少了钱。

防范

XSS:对用户输入的内容进入过滤

CSRF:1.给请求加入随机token(1.服务器给客户端发送一个token 2.客户端发送请求时带上token 3.token不合法,拒绝该请求) 2.使用cors跨域请求时 限制请求域名

本文标题:csrf和xss

文章作者:Coding_youth

发布时间:2018年01月04日 - 15:01

最后更新:2020年05月28日 - 19:05

原始链接:https://yangchendoit.github.io/2018/01/04/csrf和xss/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

坚持原创技术分享,您的支持将鼓励我继续创作!