javascript - 节点 JS REST Api 使用部分工作的 CORS 限制来源。如何阻止直接请求?
问题描述
我有一个与 Node JS Api 交谈的 React 应用程序。我只希望 React App 访问 Api。为了实现这一点,我在 Node Api 中实现了 CORS:
app.use(cors({
origin: 'http://localhost:3000'
}));
使用这种方法有效。作为否定测试,我将端口号更改为 4000,它阻止了来自 React 应用程序的请求。都好!
但是,我可以将 url 带到 Node JS Api 并放入浏览器以发出 GET 请求,它不会被阻止。我还使用 Postman 访问 Api,它没有阻止请求。
我的 API 的本地 URL:
http://localhost:9000/resultSummary?studyId=1000
如何阻止对 Node JS Api 的直接调用?
解决方案
CORS 仅由浏览器实现。它将通过确保您的域不会被带有恶意 JavaScript 代码的其他域访问来保护您的用户。如果用户决定自己发出请求,他仍然可以自由地请求您的 API,因为它是公开的。
推荐阅读
- batch-file - 如何在提示用户是或否关闭 Windows PC 时设置超时?
- python - 如何计算递归深度而不在 Python 中传递计数参数?
- r - R中的消息函数不写入文本文件/将消息打印到标准输出
- python - 如何告诉 Python 多个 .py 文件的内容应该匹配?
- python - 使用 Selenium 和 Python 解析表数据
- java - 如何根据 Listview 上选择的项目设置不同的功能?
- ios - 消耗品应用内购买是否适用于不同的轮胎?
- amazon-cloudformation - aws cloudformation,下面是什么意思
- javascript - 如何在 React Native 中裁剪图像,使其看起来像圆形而不是矩形?
- python - python类变量不会在多处理中更新