web api 安全与验证(新手求助)!!!!!!!!

问题描述

刚学webapi不久,很多问题都不怎么懂,觉得web的东西安全性是第一位,我想请教下各位有开发经验的大神,webapi暴露接口给mvc,webform,手机app调用的话,我用非对称加密的数字签名,提供公钥给提供调用的系统,并要求他们提供他们的公钥,每次传送数据时候,带上他们的用户名和对数据进行签名,这样就可以替代用户验证了吧,因为数字签名本来就有不可抵赖性,而且因为每次传送数据的时候都带上用户名,所以不用session或者cookie存放敏感信息,用数字签名验证完用户后再验证授权,这样单是使用数字签名就可以防止了大部分的攻击了吧,因为session或者cookie没有敏感信息,对于重放攻击话,因为数据库的资源都带有一个GUID,如果是add,检验GUID是否存在,如果存在就update,而update,del都是作用到同一条数据的相同修改无论对少次相同的修改都一样的结果,数字签名+不放敏感信息到session或者cookie+资源采用GUID,这样是不是可以避免了大部分的攻击,这样的设计是OK的吗?还有哪些攻击需要注意

解决方案

本帖最后由 cwm1985 于 2016-06-18 16:06:10 编辑
解决方案二:

自顶一下,想知道一下实际的方案,刚学不久啊
解决方案三:

1、这样调用系统可以伪造用户名2、每次都要验证签名过的数据,效率低下
解决方案四:

这个也差不多啦,比较安全的,可以了解下微信公众号那种方式,token需要跟服务器获取,而且是有效时间的
解决方案五:

你这种就是HMAC验证方式,但你这样太麻烦了,一般采用的都是MD5签名的方式,因为不需要解密,只需要按规则再进行一次签名对比就可以确认是否被伪造,性能消耗比你的方式小重放攻击一般来说,是加上时间戳来解决,如果你按照REST规范进行编码的话,时间戳可以解决get和del的重放问题,而put和post一般是更新数据库的,这时候时间戳只能解决一部分问题,其它部分就需要逻辑来保证了(比如put更新了数据,那后面同样的请求再来时,逻辑上就可以验证到数据已经变更过了,所以请求被拒绝)

时间: 2024-07-31 04:59:39

web api 安全与验证(新手求助)!!!!!!!!的相关文章

【ASP.NET Web API教程】2.1 创建支持CRUD操作的Web API

原文 [ASP.NET Web API教程]2.1 创建支持CRUD操作的Web API 2.1 Creating a Web API that Supports CRUD Operations2.1 创建支持CRUD操作的Web API By Mike Wasson | January 28, 2012作者:Mike Wasson | 日期:2012-1-28 本文引自:http://www.asp.net/web-api/overview/creating-web-apis/creating

【ASP.NET Web API教程】4.3 ASP.NET Web API中的异常处理

原文:[ASP.NET Web API教程]4.3 ASP.NET Web API中的异常处理 注:本文是[ASP.NET Web API系列教程]的一部分,如果您是第一次看本系列教程,请先看前面的内容. Exception Handling in ASP.NET Web API ASP.NET Web API中的异常处理 本文引自:http://www.asp.net/web-api/overview/web-api-routing-and-actions/exception-handling

Web API应用架构概括分析和设计实例教程

1.Web API的核心层设计 在目前发达的应用场景下,我们往往需要接入Winform客户端.APP程序.网站程序.以及目前热火朝天的微信应用等,这些数据应该可以由同一个服务提供,这个就是我们所需要构建的Web API平台,基于上述的需求,很多企业的需求都是以Web API优先的理念来设计整个企业应用体系的.Web API作为整个纽带的核心,在整个核心层需要考虑到统一性.稳定性.以及安全性等方面因素. 从上图我们可以看到,整个外围的应用场景围绕着Web API核心层构建,如果我们把它换一种方式表

ASP.NET Web API(二) 安全验证之使用HTTP基本认证

在前一篇文章ASP.NET Web API(一):使用初探,GET和POST数据中,我们初步接触了微软的REST API: Web API. 我们在接触了Web API的后就立马发现了有安全验证的需求,所以这篇文章我们先来讨论下 安全验证一个最简单的方法:使用HTTP基本认证. HTTP基本认证原理 在HTTP协议进行通信的过 程中,HTTP协议定义了基本认证过程以允许HTTP服务器对WEB浏览器进行用户身份认证的方法,当一个客户端 向HTTP服务器进行数据请求时,如果客户端未被认证,则HTTP

购物车Demo,前端使用AngularJS,后端使用ASP.NET Web API(3)--Idetity,OWIN前后端验证

原文:购物车Demo,前端使用AngularJS,后端使用ASP.NET Web API(3)--Idetity,OWIN前后端验证   chsakell分享了前端使用AngularJS,后端使用ASP.NET Web API的购物车案例,非常精彩,这里这里记录下对此项目的理解. 文章:http://chsakell.com/2015/01/31/angularjs-feat-web-api/http://chsakell.com/2015/03/07/angularjs-feat-web-ap

Asp.Net Web API 2第十五课——Model Validation(模型验证)

原文:Asp.Net Web API 2第十五课--Model Validation(模型验证) 前言 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyok/p/3446289.html 本文参考链接文章地址http://www.asp.net/web-api/overview/formats-and-model-binding/model-validation-in-aspnet-web-api 当客户端发送数

【ASP.NET Web API教程】6.4 模型验证

原文:[ASP.NET Web API教程]6.4 模型验证 本文是Web API系列教程的第6.4小节 6.4 Model Validation 6.4 模型验证 摘自:http://www.asp.net/web-api/overview/formats-and-model-binding/model-validation-in-aspnet-web-api By Mike Wasson|July 20, 2012 作者:Mike Wasson | 2012-6-20 When a clie

一个创建 OData 的新选项: Web API

早在 OData 规范出现以前,Microsoft .NET 开发人员就已能够创建 OData 源.借助 WCF 数据服务,可使用具象状态传输 (REST) 在 Web 上公开实体数据模型 (EDM).换句话说,可 经由以下 HTTP 调用使用这些服务: GET.PUT.DELETE 等.随着创建这些服务的框架的发 展(中途数次更改名称),输出也在不断演变,并最终形成以 OData 规范 (odata.org) 封装的形态.目前已出现多种可使用 OData 的 客户端 API,来源如 .NET.

启用和自定义 ASP.NET Web API 服务的安全性

对于最常见的场景 - Web 页面中的 JavaScript 访问同一站点上的 Web API 服务,讨论 ASP.NET Web API 的安全性几乎是多余的.如果对用户执行身份验证和授权对 Web 窗体/视图(包含使用服务的 JavaScript)的访问均已设置,则服务可能已具备其所需的所有安全性了.这要归因于 ASP.NET,它会将其用 于验证页面请求的 Cookie 和身份验证信息作为对服务方法的任意客户端 JavaScript 请求的一部分进行发送 .但有一个非常重要的例外: ASP.