微信小程序使用websocket防止 XSS 和 CSRF攻击

防止 XSS 攻击:

1. 对于用户输入的数据,需要进行过滤和转义,避免恶意脚本注入。可以使用类似于 htmlspecialchars() 的函数进行转义。

2. 对于从服务器返回的数据,需要进行验证和过滤,避免恶意脚本注入。可以使用类似于 DOMPurify 的库进行过滤。

3. 在发送数据时,需要使用 JSON.stringify() 将数据转换为 JSON 格式,避免恶意脚本注入。

防止 CSRF 攻击:

1. 在发送请求时,需要添加 CSRF Token,避免恶意请求被执行。可以在登录时生成一个 CSRF Token,并在每次请求时将其添加到请求头中。

2. 在服务器端,需要验证请求中的 CSRF Token 是否正确,避免恶意请求被执行。可以在每次请求时,从请求头中获取 CSRF Token,并与服务器端保存的 Token 进行比较。

以下是示例代码:

防止 XSS 攻击:

```javascript
// 对用户输入的数据进行转义
function escapeHtml(str) {
  return str.replace(/[&<>"']/g, function(match) {
    switch (match) {
      case '&':
        return '&amp;';
      case '<':
        return '&lt;';
      case '>':
        return '&gt;';
      case '"':
        return '&quot;';
      case "'":
        return '&#39;';
    }
  });
}

// 对从服务器返回的数据进行过滤
function filterHtml(str) {
  return DOMPurify.sanitize(str);
}

// 发送数据时,使用 JSON.stringify() 转换为 JSON 格式
const data = {
  name: '张三',
  age: 18,
  hobby: '<script>alert("恶意脚本")</script>'
};
const json = JSON.stringify(data);
```

防止 CSRF 攻击:

```javascript
// 在登录时生成 CSRF Token,并保存到本地
const csrfToken = 'xxxxx';
localStorage.setItem('csrfToken', csrfToken);

// 在发送请求时,添加 CSRF Token 到请求头中
const xhr = new XMLHttpRequest();
xhr.open('POST', '/api');
xhr.setRequestHeader('X-CSRF-Token', csrfToken);
xhr.send();

// 在服务器端,验证请求中的 CSRF Token 是否正确
const csrfToken = req.headers['x-csrf-token'];
const savedToken = localStorage.getItem('csrfToken');
if (csrfToken !== savedToken) {
  // CSRF Token 不正确,拒绝请求
  res.status(403).send('Forbidden');
}
```
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值