Javascript 如何确定请求者是我的web应用程序
我有一个web应用程序,我不希望其他人调用我的端点并在我的网站之外使用提供的JSON数据。我的web应用程序是否有一些独特的东西(或者创建一些没有人能在devtools上看到的东西)可以通过请求头发送?由于服务器和应用程序位于同一个项目中,CORS在这方面有帮助吗Javascript 如何确定请求者是我的web应用程序,javascript,node.js,authentication,Javascript,Node.js,Authentication,我有一个web应用程序,我不希望其他人调用我的端点并在我的网站之外使用提供的JSON数据。我的web应用程序是否有一些独特的东西(或者创建一些没有人能在devtools上看到的东西)可以通过请求头发送?由于服务器和应用程序位于同一个项目中,CORS在这方面有帮助吗 fetch(url{ 方法:“GET”, 海迪尔斯:{ //我的网站的独特之处 } }) 您可以: 创建一个唯一的会话ID(在服务器上),该ID随应用程序主页一起发送,然后用于与应用程序相关的所有呼叫 使用SSL确保唯一会话ID不会
fetch(url{
方法:“GET”,
海迪尔斯:{
//我的网站的独特之处
}
})
您可以:
- 创建一个唯一的会话ID(在服务器上),该ID随应用程序主页一起发送,然后用于与应用程序相关的所有呼叫
- 使用SSL确保唯一会话ID不会从传输中的HTTP通信中被盗
- 即使使用有效的会话ID(例如,Z时间内只有X个来自IP Y的请求),也会对响应进行速率限制,因为恶意参与者可以使用类似浏览器的进程连接到您的应用程序,并通过该会话对其进行挖掘
- (可选)您可以将其锁定为原始请求IP(但请注意,有时客户端会更改IP,例如,在快速移动的火车上)
- 创建一个唯一的会话ID(在服务器上),该ID随应用程序主页一起发送,然后用于与应用程序相关的所有呼叫
- 使用SSL确保唯一会话ID不会从传输中的HTTP通信中被盗
- 即使使用有效的会话ID(例如,Z时间内只有X个来自IP Y的请求),也会对响应进行速率限制,因为恶意参与者可以使用类似浏览器的进程连接到您的应用程序,并通过该会话对其进行挖掘
- (可选)您可以将其锁定为原始请求IP(但请注意,有时客户端会更改IP,例如,在快速移动的火车上)
不,恰恰相反。但是,在这里,这是很有用的,这意味着您不必担心其他网站通过ajax直接在浏览器中使用您网站的数据。(您可以使用它来允许他们这样做。)询问用户名和密码?@MatJ该web应用程序没有身份验证系统(没有用户),只是一个简单的web应用程序,这并不简单。最简单的方法是在你的web应用中设置一个静态id,然后你的服务器验证这个id。@user121548789,添加一个,这就是你的问题的解决方案。我认为你应该使用一些身份验证,比如承载令牌,从ui访问web api。询问用户名和密码?@MatJ web应用没有身份验证系统(没有用户)只是一个简单的web应用程序,它不是微不足道的。最简单的方法是在你的web应用程序中设置一个静态id,然后你的服务器验证这个id。@user121548789,添加一个,然后,这就是你问题的解决方案。我认为你应该使用一些身份验证,如持票人令牌,从ui访问web api。创建一个唯一的会话id,与应用程序主页一起发送“…在前端创建一个唯一的ID是一个好主意,因为所有的代码都可以通过浏览器获得?@user121548789-你不会在前端创建它,你应该在服务器上创建它,并与主应用程序的HTML一起提供。这就是为什么我说“随主页一起发送”,然后有人可以调用端点并制作自己的令牌right@user121548789-是的,请看关于速率限制的子弹,以及关于僵尸网络的段落。是的,听起来很棒,我可能会同意。。。感谢您的帮助创建一个与应用程序主页一起发送的唯一会话ID“…在前端创建一个唯一ID是一个好主意,因为所有代码都可以通过浏览器获得吗?@user121548789-您不会在前端创建它,而是在服务器上创建它,并与主应用程序的HTML一起提供。这就是我说的原因”然后有人可以直接调用端点并制作自己的令牌right@user121548789-是的,请看关于速率限制的项目符号和关于僵尸网络的段落。是的,听起来很棒,我可能会同意……谢谢你的帮助