web安全,常见的攻击以及如何防御

1、CSRF攻击

CSRF即Cross-site request forgery(跨站请求伪造)

(1)表单带一个后端生成的 token,或用XMLHttpRequest附加在header里。

复制代码
<form action="example.com/swap" method="POST">
  <input type="hidden" name="token" value="aaaabbbb">
  ...
</form>

(2)设置cookie属性SameSite 为StrictLax。基本就杜绝了 CSRF 攻击,当然,前提是用户浏览器支持 SameSite 属性。

(3)验证 HTTP Origin或Referer 字段。记录了该 HTTP 请求的来源地址。缺点:Referer 值是由浏览器提供的,因为浏览器限制,不能手动添加和修改referer请求头。使用验证 Referer 值的方法,就是把安全性都依赖于第三方(即浏览器)来保障,从理论上来讲,这样并不安全。对于某些浏览器,比如 IE6 ,目前已经有一些方法可以篡改 Referer 值。用户自己也可以设置浏览器使其在发送请求时不再提供 Referer。

(4)提交验证码。在表单中添加一个随机的数字、字母、图片(缺失一块位置,拖动补齐)验证码。通过强制用户和应用进行交互来有效地遏制CSRF攻击。

参考:

CSRF防御之token认证_csrf token-CSDN博客

2、XSS攻击

XSS即Cross Site Scripting(跨站脚本攻击),攻击者通过各种方式将恶意代码注入到用户的页面中,这样就可以通过脚本进行一些操作。

相关推荐
前端小端长2 分钟前
项目里满是if-else?用这5招优化if-else让你的代码清爽到飞起
开发语言·前端·javascript
笨小孩7873 分钟前
Flutter跨平台开发全解析:从原理到实战的深度指南
javascript·react native·react.js
胡萝卜3.04 分钟前
现代C++特性深度探索:模板扩展、类增强、STL更新与Lambda表达式
服务器·开发语言·前端·c++·人工智能·lambda·移动构造和移动赋值
AI_567811 分钟前
Vue3组件通信的实战指南
前端·javascript·vue.js
烤麻辣烫11 分钟前
黑马大事件学习-16 (前端主页面)
前端·css·vue.js·学习
Dragon Wu14 分钟前
TanStack Query(React Query) 使用总结
前端·react.js·前端框架·react
鹏多多18 分钟前
flutter-使用EventBus实现组件间数据通信
android·前端·flutter
UpgradeLink19 分钟前
Electron项目使用electron-updater与UpgradeLink接入参考
开发语言·前端·javascript·笔记·electron·用户运营
程序员祥云28 分钟前
技能特⻓回答
前端·面试
m0_6161884929 分钟前
JS文件批量下载并打包成ZIP的功能
开发语言·javascript·ecmascript