如何解决任何人都可以使用我的 GET 端点获取我的博客文章并在他自己的网站上使用它们?有没有办法保护这个?
我有一个建立在 MERN Stack 之上的博客应用。我正在 React 前端获取我的博客文章,但是,我觉得任何人都可以通过点击相同的端点在他自己的网站上使用我的博客文章。我想保护这种行为。有办法吗?
解决方法
如果由于某种原因尚未启用它,请确保您的端点具有标准的 Access-Control-Allow-Origin 限制 - 也就是说,它们只允许来自您的域的直接连接,而不允许来自其他站点的直接连接。这将使其他网站更难以抓取您的网站,因为他们将无法直接从前端发出请求。
您还可以更改应用程序结构,以便博客数据与初始 HTML 响应一起发送。举个小例子,你可以
<script type="application/json" class="blog-data">
[{"title":"some post title","content":"some content"}]
</script>
const blogData = JSON.parse(document.querySelector('.blog-data').textContent);
这也将使抓取工具的工作变得更加困难 - 他们没有准备好提供普通博客数据的端点,他们必须首先解析您的 HTML 响应。
您还可以经常更改 HTML 响应中数据的 DOM 结构以使其更难处理。
但是对于有足够决心的人来说,网络抓取从根本上几乎是不可能停止的。
,基本上,您可以在后端使用 CORS 来保护从任何浏览器来源(允许的来源除外)获取端点。
无论如何,它不会帮助您防止从移动应用程序、邮递员等调用 API。
如果您担心加载到服务器,您可以添加诸如速率限制之类的内容。 但请记住,如果您的 API 是公开的,那么它将对所有人公开,您不能限制只能在您的网站上使用它。
,这里有一些想法:
- 也许可以添加一些身份验证来保护您的端点。
- 如果您使用 CORS,则只接受来自特定 URL 的请求。
- 在您的 package.json 中,添加一个 proxy。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。