回到目录 web api越来越火,因为它的跨平台,因为它的简单,因为它支持xml,json等流行的数据协议,我们在开发基于面向服务的API时,有个问题一直在困扰着我们,那就是数据的安全,请求的安全,一般所说的安全也无非就是请求的防篡改和请求的防复用,例如,你向API发一个查询用户账户的请求,在这个过程中,你可能要传递用户ID,用户所在项目ID等,而现在拦截工具如此盛行,很容易就可以把它的请求拦截,然后篡改,再转发,这样你的API就是不安全的,而对于订单,账户模块这种糟糕的API设计更是致命的,可…
Spring Boot 防篡改.防重放攻击 本示例要内容 请求参数防止篡改攻击 基于timestamp方案,防止重放攻击 使用swagger接口文档自动生成 API接口设计 API接口由于需要供第三方服务调用,所以必须暴露到外网,并提供了具体请求地址和请求参数,为了防止被别有用心之人获取到真实请求参数后再次发起请求获取信息,需要采取很多安全机制. 需要采用https方式对第三方提供接口,数据的加密传输会更安全,即便是被破解,也需要耗费更多时间 需要有安全的后台验证机制,达到防参数篡改+防二次请求…
回到目录 本讲比较实际,在WEB端有一个Index和Create方法,用来从web api显示实体列表数据和向api插入实体对象,这就是以往的网站,只不过是把数据持久化过程放到了web pai上面,它的优势不用说,就是跨平台,跨语言,这其实是restFul的功功,一切通讯都变得那个简易,清晰!你再也不用引用程序集了... 先看一下实体的具体效果…
回到占占推荐博客索引 写了这个系列的文章不少了,也应该为大家写个目录了,最近很刮了很多SOA的风,很多企业都将自己的系统进行分割,通常是按模块进行拆分,为这个模块提供统一的接口提供业务服务,这不紧可以提高代码重用,也更好了扩展了其它服务,如为第三方提供一些数据,也可以通过这种soa模式来实现. WebApi系列~目录 WebApi系列~基于RESTful标准的Web Api (2014-02-19 13:30) WebApi系列~在WebApi中实现Cors访问 (2014-02-20 10:3…
public class ActionFilter : ActionFilterAttribute      {          public override void OnActionExecuting(System.Web.Http.Controllers.HttpActionContext actionContext)          {              base.OnActionExecuting(actionContext);              //获取请求消息…
Knowledge should be shared free. 我们都知道WebApi最重要的作用就是为外部服务提供相应的数据接口和服务,所以一般WebApi都会连接后台数据库,那么最重要的一件事就是校验,要不然后台数据和服务就等于对所有人开放,那还了得(局域网项目除外,因为系统不挂接外系统,可能安全性要求不那么高,所以就不用那么严格,但是最好也有),总不能直来直去,谁都能用吧,这又不是08年的奥运会,我们一块唱北京欢迎你,我们WebApi不欢迎“陌生人”.这就相当于给WebApi安排一个门卫…
WebApi系列文章 [01]浅谈HTTP在WebApi开发中的运用 [02]聊聊WebApi体系结构 [03]详解WebApi参数的传递 [04]详解WebApi测试和PostMan [05]浅谈WebApi Cores [06]详解WebApi 异常处理 [07]用WebAPI写个基于EF的CURD [08]浅谈WebAPI身份认证 [09]详解系列化和模型绑定 [10]浅谈WebApi如何配合Mvc有效工作 [11]浅谈API Reference [12]浅谈接口在软件架构中的作用 [13…
近年来,网络安全实战演习受到各大关基单位的高度关注.对于网络安全实战演习的防守方,防火墙.Web应用防火墙.态势感知.EDR.蜜罐等都是较为常见的防守工具,而网页防篡改系统则鲜有露脸的机会-- 很多人认为,网页防篡改系统只是用来保护门户网站的,特别是针对静态门户网站时,才有它的价值. 而在网络安全实战演习中,攻击队根本不会将火力指向网页防篡改系统的保护对象.因此,网页防篡改系统在这个场景下缺乏应用价值. 之所以产生这样的观念,和网页防篡改产品的现状有着很大的关系.目前,市场上大部分的网页防篡改产…
由于JavaScript共享的特性,任何对象都可以被放在同一环境下运行的代码修改. 例如: var person = {name:"caibin'} person.age = 21; 即使第一行定义了完整的person对象,那么第二行代码仍然可以对其添加属性,删除属性等. 我们有三个方法可以防止你做出这些行为. 一.不可扩展对象: 先来看person本身的扩展性: Object.isExtensible(person); // true 接下来执行: Object.preventExtensio…
本文大纲 一.提出问题 二.数字签名 三.实现步骤 四.参考代码 五.后记 六.参考资料 一.提出问题 最近在做一个项目,需要对一个现成的产品的数据库进行操作,增加额外的功能.为此,需要对该产品对数据库有什么操作进行研究(至于怎么监控一个产品的操作会引发什么数据库操作,以后会详细解说).本来已经对数据库的操作了如指掌的,无意中发现数据库表里的每条记录都会有这样一个字段: 这感觉不妙了,字段名叫signature,顾名思义,就是签名的意思呀.难道数据库表中的每条记录都会有签名?也就是说如果我不能正…
一.为什么Cookie需要防篡改 为什么要做Cookie防篡改,一个重要原因是 Cookie中存储有判断当前登陆用户会话信息(Session)的会话票据-SessionID和一些用户信息. 当发起一个HTTP请求,HTTP请求头会带上Cookie,Cookie里面就包含有SessionID. 后端服务根据SessionID,去获取当前的会话信息.如果会话信息存在,则代表该请求的用户已经登陆. 服务器根据登陆用户的权限,返回请求的数据到浏览器端. 因为Cookie是存储在客户端,用户可以随意修改.…
一. 简介  1. 什么是WebApi? WebApi是一个很广泛的概念,在这里我们特指.Net平台下的Asp.Net WebApi框架,它是针对各种客户端(浏览器.APP等)来构建Http服务的一个框架,它是一种RestFul风格的开发接口的技术,它比WebService更省流量,比WCF更简单.下图表示WebApi在.Net平台下的地位. 简单分析:WebForms.MVC均为ASP.NET下的Web开发框架,WebAPI负责构建HTTP常规服务,SignalR负责构建实时服务. WebAP…
Cookie和Session是为了在无状态的HTTP协议之上维护会话状态,使得服务器可以知道当前是和哪个客户在打交道.本文来详细讨论Cookie和Session的实现机制,以及其中涉及的安全问题. 因为HTTP协议是无状态的,即每次用户请求到达服务器时,HTTP服务器并不知道这个用户是谁.是否登录过等.现在的服务器之所以知道我们是否已经登录,是因为服务器在登录时设置了浏览器的Cookie!Session则是借由Cookie而实现的更高层的服务器与浏览器之间的会话. 一.cookie安全隐患 Co…
回到目录 对于一个Http请求如何保证它的安全,这已经不是一个新的话题,对于请求的安全我们通常考虑的无非就是"请求的被篡改性"和"请求的被复制性",第一个问题我们很容易实现,可以通过参数+密钥的方式,而第二个问题就很难实现了,到目前为止也没有一个统一的标准,今天我们要说的安全性,也主要针对的第一种来讲的. 对于一个URL地址来说,可能是这样的格式 http://www.domain.com?vid=1&type=3&main=ok 对上面地址进行安全防篡改之后,可能地址就变成了这样 htt…
1.WebApi系列~通过HttpClient来调用Web Api接口 http://www.cnblogs.com/lori/p/4045413.html HttpClient使用详解(java版本的) http://blog.csdn.net/wangpeng047/article/details/19624529 2.C#通过WebClient,HttpWebRequest实现http的post和get方法 来自baidu 文档:http://wenku.baidu.com/link?ur…
做网站难免要面对安全性的问题,诸如sql注入拉,cookie冒名拉,等等,sql注入算是老生常谈,翻翻旧账有不少优秀的帖子在说明这个问题,所以我们来说说Session冒名顶替的风险以及应对的办法. 首先要说Session冒名顶替,就得说说Session的原理.Session是一个在服务器端保持会话的机制,其实在Http协议里并没有规定 Session这个东西,所以他的实现方式就有点千奇百怪,不同的Web框架下Session的实现机制都是不一样的.但是原理都是大同小异的,这里普遍应用的机制是通过C…
概述: 除了 session 外,一般不会在客户端的 cookies 里保存过于重要的凭据,但电商应用有时候不可避免地存储了一些敏感数据到客户端,当然不希望被篡改. 目的: 让服务器端能识别cookie值被篡改了.   手法: set-cookie时加上防篡改验证码. 如: user_name=alex|bj95ef23cc6daecc475de   防篡改验证码的生成规则可以很简单:md5(cookieValue+key)或sha1(cookieValue+key),key可以是服务器端掌握的…
[01]浅谈HTTP在WebApi开发中的运用 [02]聊聊WebApi体系结构 [03]详解WebApi如何传递参数 [04]详解WebApi测试和PostMan [05]浅谈WebApi Cores [06]详解WebApi 异常处理 [07]用WebAPI写个基于EF的CURD [08]浅谈WebAPI身份认证 [09]详解系列化和模型绑定 [10]浅谈WebApi如何配合Mvc有效工作 [11]浅谈API Reference [12]浅谈接口在软件架构中的作用 [13]浅谈WebApi和…
WebApi系列文章 [01]浅谈HTTP在WebApi开发中的运用 [02]聊聊WebApi体系结构 [03]详解WebApi参数的传递 [04]详解WebApi测试和PostMan [05]浅谈WebApi Cores [06]详解WebApi 异常处理 [07]用WebAPI写个基于EF的CURD [08]浅谈WebAPI身份认证 [09]详解系列化和模型绑定 [10]浅谈WebApi如何配合Mvc有效工作 [11]浅谈API Reference [12]浅谈接口在软件架构中的作用 [13…
安全的类型检测 在任何值上调用Object原生的toString()方法,都会返回一个[object NativeConstructorName]格式字符串.每个类在内部都有一个[[Class]]属性,这个属性中就指定了各个类型的构造函数名. 使用这种方法判断值属于什么类型最可靠:比如: function isArray(value){ return Object.prototype.toString.call(value)=="[object Array]"; } function…
目前网上所有开放api的网站中,数据的调用都是采用同一种方式,即: http:www.xxx.com/aa=1&bb=2...,原后对这些参数按字典顺序排序后进行md5加密,将md5加密串与接口方提供的 key接在参数后面提交,如http:www.xxx.com/aa=1&bb=2&sg=md5(...)& key=3432423,服务器端把这些参数接收后以同样的方式生成md5与提交的sg参数核对是否一致,以达到防止篡改与验证合法性的目的. 我现在的疑问是,既然参数可以被篡…
主要防止非法用户修改cookie信息,以及cookie的超时时间 传统cookie存储,Cookie(name, value),value很容易就被篡改. 防修改cookie存储,Cookie(name, value+“&&”+ signToken+“&&”+saveTime+“&&”+maxTime) signToken :签名密钥 由md5(value+saveTime+maxTime+”自定义密钥“)生成 saveTime:cookie创建时间 max…
这段时间做新的Android项目的client和和REST API通讯框架架构设计.使用了非常多新技术,终于的方案也相当简洁优雅.client仅仅须要传Java对象,server端返回json字符串,自己主动解析成Java对象, 无状态安全验证基于JWT实现,JWT规范的细节能够參考我前面的文章. JWT的token和数据防篡改签名统一放在HTTP Header中.这样就实现了对请求内容和返回结果的无侵入性,server端也能够在全局过滤器中统一处理安全验证. Androidclient使用了V…
WebApi系列知识 一.webApi项目搭建 1.新建WebApi项目 (1) (2) (3) (4) Areas – HelpPage – App_Start – HelpPageConfig.cs 查看项目属性,复制xml地址 反注释 – 更改路径,使用上图获取的xml地址: (5) App_Start – RouteConfig.cs 添加代码 routes.MapRoute( "HelpPage", // 路由名称 "{controller}/{action}/{i…
原文地址:  ASP.NET Core 2.2 WebApi 系列[九]使用SignalR 今天,看到了大牛的这篇博文,  发了一下评论, 我很惊喜, 没想到他很快就回复了我,  而且通过QQ帮助了SignalR项目运行中的问题,  我在这里表示感谢! 下面, 我实练他的源码中.   中间碰到一些坎 ,(后找资料找到了),  现将这些坎作为他这篇文章的内容补充吧! 注意点一: VS2019首次装了这个客户端库, 会出现这个上面界面 , 但是下次再装的话不会再弹出这个界面了, 而需要在 libma…
关键字: 驰骋工作流程快速开发平台 工作流程管理系统 工作流引擎 asp.net工作流引擎 java工作流引擎. 开发者表单  拖拽式表单 工作流系统 流程数据加密  md5  数据保密流程数据防篡改软加密 适配数据库: oralce,mysql,sqlserver,Informix, PostgreSQL  达梦 需求背景对工作流引擎的数据加密研究, 流程数据的加密方案与实现过程.1, 流程数据加密是为了防止流程数据被篡改的需要,从而造成对单位的不必要损失.2, 流程数据篡改是具有管理员身份与…
如何保护.net中的dll文件(防破解.反编译) 2010-07-19 15:08 [小 大] 来源: 赛迪网 评论: 0 分享至:      百度权重查询 词库网 网站监控 服务器监控 SEO监控 手机游戏 iPhone游戏 .net是一种建立在虚拟机上执行的语言,它直接生成 MSIL 的中间语言,再由.net编译器 JIT 解释映象为本机代码并交付CPU执行.中间语言很容易被反编译,所以研究下如何有效的保护dll文件. 我大致的方法为 :强签名+混淆+加密. 强签名 强命名程序集,可以确保你…
防篡改,顾名思义就是防止有人恶意篡改请求数据URL以达到恶意攻击的目的,那要怎么才能实现这样的目的呢? 很简单,将要请求的数据加上合作号.合作Key按规则组织成一个字符串,获取对应的MD5摘要,然后将该摘要及合作号同时作为请求的一部分一起传递(合作Key禁止传递) 举个简单的例子: 加入我们需要进行签名的Json参数如下: {"user_name":"admin","pwd":"123"}, 那么我们可以按顺序把数据字符串的形…
[源] 来自微软WebAPI官方视频,Introduction to the ASP.NET Web API --Uniform Interface -- Demo-Using convention 这一节. http://pluralsight.com/training/Player?author=jon-flanders&name=aspnetwebapi-m1-introduction&mode=live&clip=0&course=aspnetwebapi 先上一张…
原文:浏览器扩展系列----在WPF中定制WebBrowser快捷菜单 关于如何定制菜单可以参考codeproject上的这篇文章:http://www.codeproject.com/KB/books/0764549146_8.aspx?fid=13574&df=90&mpp=25&noise=3&sort=Position&view=Quick&fr=26#xx0xx 本文主要讲述如何在这篇文章中的ShowContextMenu方法中弹出自己的Conte…