$https请求的安全性
Security on $https requests
早上好,
我正在开发一个离子应用程序,有一些$http请求(角度(将数据发送到服务器控制器(yii 1(以将数据保存在数据库中。我完成了我的应用程序,但它没有安全性。我想知道如何保护它,因为现在任何人如果查看我的$http请求都可以知道必须发送哪些参数,并杀死我的应用程序。
我应该怎么做才能保护它?也许通过令牌?我真的迷失了安全方法。
非常感谢
卡尔斯。
当您研究Web应用程序安全性时,您会遇到跨站点请求伪造(CSRF(。这种攻击媒介正在利用 cookie,但以一种可预防的方式。
大多数攻击都集中在窃取您的 cookie 上,因为几乎每个网站都使用 cookie 作为身份验证形式。设置是这样的:当用户登录到您的服务器时,您在浏览器中设置一个cookie。此 Cookie 包含一个唯一 ID,该 ID 是指向数据库中用户会话信息的链接。浏览器在将来的请求中提供此cookie,服务器知道您是谁。
从表面上看,这听起来还不错,但这里有一个问题:即使最终用户没有自己执行该操作,Web浏览器也可能被欺骗向您的服务器发出请求。
使用 POST 请求
有时人们认为使用正确的基于表单的 POST 请求可以缓解这种攻击,但事实并非如此。
使用仅限 HTTP 或安全 Cookie
虽然您绝对应该在会话 cookie 上使用这些标志,但它们不会隐含地阻止攻击:当向您的域发出请求时,浏览器仍会将 cookie 发送到您的域。您的服务器不知道这是真实用户还是攻击。
如何预防企业社会责任
您可以通过依赖浏览器遵循的一组规则(称为同源策略(来实现此目的。本政策断言某些敏感操作是由在我们网站上运行的 JavaScript 代码执行的,而不是由其他网站执行的。
Angular 打包了 CSRF 代币方法,使我们更容易实现。对于 Angular 应用程序对服务器发出的每个请求,Angular $http 服务将自动执行以下操作:
在当前域上查找名为XSRF-TOKEN的cookie。如果找到该 cookie,它将读取该值并将其作为 X-XSRF-TOKEN 标头添加到请求中。
因此,客户端实现会自动为您处理!但这确实将服务器端的部件留在您手中。您将需要执行以下部分:
登录期间:创建 CSRF 令牌(使用随机的、不可猜测的字符串(,并将其与用户会话关联。您需要在登录响应中将其作为XSRF-TOKEN cookie发送。断言对 API 的所有传入请求都具有 X-XSRF-TOKEN 标头,并且标头的值是与用户会话关联的令牌。
就是这样!通过一些后端工作,您现在有一个保护您免受CSRF攻击的策略。
您将在此处找到如何防止CSRF攻击的工作示例对于理解CSRF攻击的理论,请遵循此参考
- 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请求的安全性