访问API的客户端AJAX请求的安全性
Security for AJAX requests from the client side accessing an API
假设您希望第三方站点复制并粘贴您提供的javascript代码片段。这段代码使用AJAX请求访问服务器上的JSON API。您将如何实现安全性,以便在将API使用与已注册并接收API密钥的网站关联时,您将有效地禁止网站滥用另一个网站的API密钥/使用?从客户端来看,这种安全性是不可能的吗?站点必须从服务器访问API吗?
您还可以在您的服务器站点上检查请求的HTTP referrer。
我不认为改变javascript代码就能解决这个问题。
但它不能阻止某人从自定义浏览器或某些http客户端发送自定义包。
实现服务器端解决方案是可能的,并不太难,但它会阻止许多站点使用您的脚本。
你可以让他们从他们的服务器发送请求
或者让他们将密钥保存在他们的服务器上,在将密钥发送给客户端之前对密钥进行哈希(哈希密钥在一段时间间隔后更改)…
您可以直接检查window.location
,或者其中的某个组件
我能想到的唯一加强这种安全性的方法是通过IP地址,但这充其量是有风险的,因为有很多原因可以说明这是一个糟糕的设计。
这是服务器端保护javascript文件的安全性。你可以让一个web服务提供javascript,这样它就可以在将文件发送到客户端之前进行检查。
相关文章:
- ajax请求的顺序总是不同的
- Meteor如何接收HTTP请求
- 有没有一种方法可以防止img get请求使用css或js发生
- 从ajax请求中获取javascript对象
- JSONP请求返回结果,但也触发error_callback
- 在localhost Dev Box上测试JSONP请求的最佳方式
- Ajax请求文档就绪会导致jquery加载缓慢
- MockJax没有在JavaScript应用程序中发送对我AJAX请求的响应
- 正在传递JSONP标头's数据参数到另一个文件中的AJAX请求
- 在openshift node js应用程序中获取请求
- 反应路由器弄乱了请求网址
- 在我的情况下,如何进行http请求
- 使用密码对话框Javascript请求帮助
- servlet中的请求对象,而不是从jsp接收参数值
- 否'访问控制允许来源'标头存在于IISNOde中请求的资源(AngularJS+NodeJs)上
- $https请求的安全性
- API请求分发和安全性
- Ajax请求、数据库和安全性
- JS SDK请求安全性
- 访问API的客户端AJAX请求的安全性