api接口

.NET Core中的数据保护组件

家住魔仙堡 提交于 2019-12-05 04:13:13
原文: .NET Core中的数据保护组件 原文地址: PREVENTING INSECURE OBJECT REFERENCES IN ASP.NET CORE 2.0 作者: Tahir Naushad 背景介绍 # 在 OWASP(开放式 Web 应用程序安全项目) 2013 年发布的报告中,将不安全的直接对象引用(Insecure Direct Object Reference)标记为 十大 Web 应用程序风险之一, 其表现形式是对象的引用(例如数据库主键)被各种恶意攻击利用, 所以对于Api返回的各种主键外键ID, 我们需要进行加密。 .NET Core 的数据保护组件 # .NET Core 中内置了一个 IDataProtectionProvider 接口和一个 IDataProtector 接口。其中IDataProtectionProvider是创建保护组件的接口,IDataProtector是数据保护的接口。开发人员可以实现这 2 个接口,创建数据保护组件。 内置的数据保护组件 # .NET Core 中默认提供了一个数据保护组件, 下面我们来尝试使用这个默认组件来保护我们的数据。 例: 当前我们有一个 Movie 类,代码如下, 我们期望当获取Movie对象的时候,Id字段是加密的。 Copy public class Movie { public

Flask:API接口开发

主宰稳场 提交于 2019-12-05 03:52:00
1、下载必要插件 pip install flask-restful    flask-restful 与 Django 的 restful 模块类似,但是操作要简单许多 2、加载模块 main.py 3、使用视图类定义API views.py form main import apifrom flask import jsonify from models import * from flask_restful import Resource @api.resource("/api/books/") class BookApi(Resource): def __init__(self): super(BookApi, self).__init__() self.result = { "Code": 200, "Version": "1.0", } def set_data(self, books): result_data = { "id": books.id, "title": books.title, "detail_description": books.detail_description, "picture": books.picture, "author": books.author, "publish_time": books.publish_time,

def跨域+jwt

和自甴很熟 提交于 2019-12-05 03:04:18
1.跨域 由于浏览器具有“同源策略”的限制。如果在同一个域下发送ajax请求,浏览器的同源策略不会阻止。如果在不同域下发送ajax,浏览器的同源策略会阻止。 总结 域相同,永远不会存在跨域。 crm,非前后端分离,没有跨域。 路飞学城,前后端分离,没有跨域(之前有,现在没有)。 域不同时,才会存在跨域。 l拉勾网,前后端分离,存在跨域(设置响应头解决跨域) 解决跨域:CORS 本质在数据返回值设置响应头​from django.shortcuts import render,HttpResponse​def json(request): response = HttpResponse("JSONasdfasdf") response['Access-Control-Allow-Origin'] = "*" return response 跨域时,发送了2次请求? 在跨域时,发送的请求会分为两种: 简单请求,发一次请求。 设置响应头就可以解决from django.shortcuts import render,HttpResponse​def json(request): response = HttpResponse("JSONasdfasdf") response['Access-Control-Allow-Origin'] = "*" return response​

state processor api

自闭症网瘾萝莉.ら 提交于 2019-12-05 02:57:55
前不久,Flink社区发布了FLink 1.9版本,在其中包含了一个很重要的新特性,即state processor api,这个框架支持对checkpoint和savepoint进行操作,包括读取、变更、写入等等。下面我们以一个具体的例子来说明如何使用这个框架。1.首先我们创建一个样例作业来生成savepoint 主类代码 1 final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); 2 env.enableCheckpointing(60*1000); 3 DataStream<Tuple2<Integer,Integer>> kafkaDataStream = 4 env.addSource(new SourceFunction<Tuple2<Integer,Integer>>() { 5 private boolean running = true; 6 private int key; 7 private int value; 8 private Random random = new Random(); 9 @Override 10 public void run(SourceContext<Tuple2<Integer,Integer>>

Java类/接口的API

只谈情不闲聊 提交于 2019-12-05 00:43:41
本章节收集的类/接口API有: Object类,枚举,包装类,接口Comparable,类Arrays,异常, Object类 public String toString() :    【把一个对象的信息用一个字符串表示,尽量要能够简单易懂,建议子类重写】 public Class <?> getClass() :  【获取对象的“运行时”类型】 public void finalize(): 【 当一个对象被确定为垃圾时,由GC垃圾回收器来进行调用,每一个对象的finalize()方法只会被调用一次 】 public int hashCode() :      【返回一个对象的hashCode值】 常规协定: (1)如果一个对象的参与计算hashCode值的成员变量没有修改,那么在程序运行期间,每次获取的hashCode值不变。 (2)如果两个对象hashCode不同,那么这两个一定不“相等” (3)如果两个的hashCode值相同,那么这两个对象不一定“相等” (4)如果两个相等,那么他们的hashCode值一定要相同。 public boolean equals(Object obj):               【 用于判断当前对象与指定 对象是否相等】      默认的实现,等价于“==”,比较对象的内存地址。 子类可以选择重写,重写有一些要求及原则

十一、React 获取服务器数据: axios插件、 fetch-jsonp插件的使用

北战南征 提交于 2019-12-04 20:14:39
react获取服务器APi接口的数据: react中没有提供专门的请求数据的模块。但是我们可以使用任何第三方请求数据模块实现请求数据 一、axios 获取Api数据 使用文档: https://www.npmjs.com/package/axios git项目地址: https://github.com/axios/axios axios的作者觉得jsonp不太友好,推荐用CORS方式更为干净(后端运行跨域) npm官网:https://www.npmjs.com,在其搜索:axios即可看到详细说明。接下来cmd运行: 1、安装axios模块 npm install axios --save / cnpm install axios --save (--save必加,表示把模块写入配置文件,否则别人无法运行;建议用cnpm 前者容易失败) 2、在哪里使用就在哪里引入 import axios from 'axios' 3、看文档使用 【调用api关键代码】: var api='http://www.phonegap100.com/appapi.php?a=getPortalList&catid=20'; axios.get(api) .then(function (response) { console.log(response); }) .catch(function

Webpack devServer中的 proxy 实现跨域(用nodejs代理转发请求)

自闭症网瘾萝莉.ら 提交于 2019-12-04 20:05:52
假设,我需要请求的接口的入口为 http://www.xxx.com/api, 修改 /config/index.js 配置文件,修改 dev 选项下 proxyTable 的值为如下: 你需要请求的接口的入口为 http://www.xxx.com/rest, 而代码里请求的 url 写的是 '/api', 则你需要使用 pathRewrite 来进行路径重写,而不是直接改 traget proxyTable: { '/api': { target: 'http://www.xxx.com/', secure: false, changeOrigin: true, pathRewrite: { '^/api': '/rest' } } }, 来源: CSDN 作者: 夜空下的微笑 链接: https://blog.csdn.net/weixin_41014370/article/details/83929140

devServer之proxy跨域

爱⌒轻易说出口 提交于 2019-12-04 20:05:33
配置 devServer:{ contentBase:'./', proxy:{ // 当你请求是以/api开头的时候,则我帮你代理访问到http://localhost:3000 // 例如: // /api/users http://localhost:3000/api/users // 我们真是服务器接口是没有/api的 "/api":{ target:"http://localhost:3000", pathRewrite:{"^/api":""} } } } 用代理, 首先你得有一个标识, 告诉他你这个连接要用代理. 不然的话, 可能你的 html, css, js这些静态资源都跑去代理. 所以我们只要接口用代理, 静态文件用本地. ‘/api’: {}, 就是告诉node, 我接口只要是’/api’开头的才用代理.所以你的接口就要这么写 /api/xx/xx. 最后代理的路径就是 http://xxx.xx.com/api/xx/xx. 可是不对啊, 我正确的接口路径里面没有/api啊. 所以就需要 pathRewrite,用”^/api”:”, 把’/api’去掉, 这样既能有正确标识, 又能在请求接口的时候去掉api. --------------------- 作者:zhong242526 来源:CSDN 原文:https://blog.csdn.net

Fabric1.4:Go 链码开发与编写

徘徊边缘 提交于 2019-12-04 16:40:56
1 链码结构 1.1 链码接口 链码启动必须通过调用 shim 包中的 Start 函数,传递一个类型为 Chaincode 的参数,该参数是一个接口类型,有两个重要的函数 Init 与 Invoke 。 type Chaincode interface{ Init(stub ChaincodeStubInterface) peer.Response Invoke(stub ChaincodeStubInterface) peer.Response } Init: 在链码实例化或升级时被调用, 完成初始化数据的工作 Invoke: 更新或查询帐本数据状态时被调用, 需要在此方法中实现响应调用或查询的业务逻辑 实际开发中, 开发人员可以自行定义一个结构体,重写 Chaincode 接口的两个方法,并将两个方法指定为自定义结构体的成员方法。 1.2 链码结构 package main // 引入必要的包 import( "fmt" "github.com/hyperledger/fabric/core/chaincode/shim" pb "github.com/hyperledger/fabric/protos/peer" ) // 声明一个结构体 type SimpleChaincode struct { } // 为结构体添加Init方法 func (t

架构师必备,带你弄清混乱的JAVA日志体系!

旧巷老猫 提交于 2019-12-04 10:49:35
作者:孤独烟 出处: http://rjzheng.cnblogs.com/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。如果觉得还有帮助的话,可以点一下右下角的 【推荐】 。 引言 还在为弄不清 commons-logging-xx.jar 、 log4j-xx.jar 、 sl4j-api-xx.jar 等日志框架之间复杂的关系而感到烦恼吗? 还在为如何统一系统的日志输出而感到不知所措嘛? 您是否依然存在这样的烦恼。比如,要更改spring的日志输出为log4j 2,却不知该引哪些jar包,只知道去百度一下所谓的博客,照着人家复制,却无法弄懂其中的原理? 不要急,不要方!本文带你们弄懂其中的原理,只要你静下心看本文,你就能随心所欲更改你系统里的日志框架,统一日志输出! 正文 日志框架发展史 早年,你工作的时候,在日志里使用了log4j框架来输出,于是你代码是这么写的 import org.apache.log4j.Logger; \\省略 Logger logger = Logger.getLogger(Test.class); logger.trace("trace"); \\省略 但是,岁月流逝,sun公司对于log4j的出现内心隐隐表示嫉妒。于是在jdk1.4版本后