首页 > 解决方案 > 如何保护休息 api?

问题描述

我正在使用 Angular 开发一个应用程序。我想从 rest api 中获取要列出的数据。但是,我不希望用户访问该资源。我可以使用哪种语言、库或框架来保护它?用户在没有会员资格的情况下使用该应用程序。

我尝试了 jwt,但没有得到我想要的结果。也许我做不到。

这里是 express.js

const app = require('express')()
const express = require('express')
const fs = require('fs')
const cors = require('cors')
const bodyParser = require('body-parser');
app.use(cors())
app.use(bodyParser.json())

app.get('/', (req, res) => {
  res.json({message: 'Rest API Work'})
})

app.get('/list', (req, res) => {
    fs.readFile('data1.json','utf-8',(err,data)=>{
    res.setHeader("Content-Type", "application/json; charset=utf-8")
        data = JSON.parse(data)
        console.log(data)
        res.end(JSON.stringify(data,null,4))
    })
})



app.listen(3002, function(){
  console.log('Server OK')  
})

我想要一个简单的安全方法,我可以在其中与 Angular 连接。

标签: node.jsrestexpresssecurityoauth

解决方案


保护 API 的最佳方式是开始使用像 Nginx 这样的反向代理。Javascript 框架在安全性方面基本相同。它们都有一个基本的路由器处理程序、调度程序(基于本机 Node.js HTTP 库)和一些基本的辅助方法,他们给它起了一个好听的名字,就是这样。我检查了几乎所有主要框架的源代码。现在,Nginx 的一些基本配置参数是:client_body_buffer_size proxy_buffers等等。你所有的指令也应该正则表达式输入数据。一般来说,任何可以“过滤”恶意代码的东西都是有用的。Cloudflare 可以以某种方式帮助和其他一些可以保护您的应用程序的公司,但它们很昂贵。另一个很好的例子是使用 Docker 将您的应用程序容器化。
如果您在 Node.js 中有一段基本代码,那么破解它的最简单方法是通过您的应用程序的逻辑。您应该使用反 XSS 模块,例如xssexpress-sanitizer。如果您使用的是 SQL 数据库,则应始终对查询值进行转义。


推荐阅读