首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

《ASP.ENT Core 与 RESTful API 开发实战》-- 读书笔记(第1章)

第 1 章 REST 简介 1.1 API 与 REST API 是一个系统向外暴露或公开的一套接口,通过这些接口,外部应用程序能够访问该系统 REST 是一种基于资源的架构风格,任何能够命名的对象都是一个资源...HTTP 请求 查询字符串,URL 中 “?”...URL 中 如果一个操作无法对应到资源的某个操作上,此时可以适当地在 URI 中包含动词,但仍然应该基于一个资源的标识符 查询字符串可以用来对资源进行筛选、搜索或分页查询 URI 应使用小写字母 URI...在 RESTful API 中,JSON 和 XML 是最常用到的两种资源表述格式 JSON 是一种轻量级的数据交换格式,数据使用名称/值来表示,中间用冒号隔开 JSON 数据项的值的类型可以是下列类型...更简洁,容易解析,但是不支持注释,扩展性不如 XML RESTful API 添加版本有以下4中方式: 使用 URI 路径,如 api/v1/users 使用查询字符串,如 api/users?

96510

如何做一款好的waf产品(2)

WAF支持以下的数据还原方法 1. URL解码 (如%XX) 2. 以空字节结尾的字符串(Null byte string termination),如C风格字符串。 3....路径中的本级目录引用 (如使用 /./ 或与之等价的编码字 符串)。 4. 路径中的上级目录引用(如使用 /../ 或与之等价的编码字 符串)。 5....对HTML中的一些特殊定 义的字符进行转换,比如c,这个其实就是HTML代码里用ASCII代码表示字符的方式c代表的就是字符为99的ASCII字符,即“c”,"(引号), ª(十六进制表示的字符...),关于html中特殊字符请见一篇文章中特殊字符>:地址:http://sailinglee.javaeye.com/blog/446898) 11....保护表单中的隐藏域 防止表单中隐藏域的值被篡改。

81120
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Web开发须知:URL编码与解码

    否则如果客户端浏览器和服务端浏览器支持的字符集不同的情况下,中文可能会造成问题。 Url编码的原则就是使用安全的字符(没有特殊用途或者特殊意义的可打印字符)去表示那些不安全的字符。   ...$&'()*+,;=)用于在每个组件中起到分隔作用的,如=用于 表示查询参数中的键值对,&符号用于分隔查询多个键值对。当组件中的普通数据包含这些特殊字符时,需要对其进行编码。   ...  需要注意的是,对于Url中的合法字符,编码和不编码是等价的,但是对于上面提到的这些字符,如果不经过编码,那么它们有可能会造成Url语义 的不同。...号用于分隔主机和路径。由于encodeURI操纵的对象是一个完整的的URI,这些字符在URI中本来就有特殊用途,因此这些保 留字符不会被encodeURI编码,否则意义就变了。   ...例如对于IE,如果你勾选了高级设置"总是以UTF-8发送Url",那么Url中的路径部分的中文会使用UTF-8进行Url编码之后发送给服务端,而查询参数中的中文部分使用系统默认字符集进行Url编码。

    2.8K30

    Jmeter系列(21)- 详解 HTTP Request

    ,默认:80 方法 发送 http 请求的方法 路径 目标请求的 URL 路径 不包括协议、host、ip、端口 内容编码 请求的编码方式,默认:iso8859 自动重定向...当你的参数值为空的时候,可以选择不包含=,默认勾选 如果参数值不为空,则不可以取消勾选 什么是 URL 编码 URL 编码解码,又叫百分号编码,是统一资源定位(URL)的编码方式 URL 地址(常说网址...)规定了数字,字母可以直接使用,另外一批作为特殊用户字符也可以直接用( 等),剩下的其它所有字符必须通过 %xx 编码处理 / , : @ 编码方法很简单,在该字符ascii码的的16进制字符前面加...%,如空格字符,ascii码是32,对应16进制是20,那么 urlencode 编码结果是 %20 URL 编码的栗子 直接在网上搜在线 URL 编解码 ?...总结 最终表单的参数列表会拼接到 URL 中,所以如果包含了中文、特殊字符就要勾选编码?

    3.4K20

    SpringMvc入门

    在web.xml中配置这个filter 发送其他形式的请求 1.创建一个post表单 2.在表单中携带一个_method的参数 3.这个_method的值,就是DELETE,PUT 高版本tomcat...springmvc中支持的相关原生API 请求到的数据出现中文乱码的问题 以前的解决方式 解决方法:配置一个字符编码的filter----Spring提供,只能解决POST请求乱码,以及响应乱码,GET...字符编码的filter一般都在其他filter之前 概述 Spring的mvc实现思想 POJO 简单的Java对象(Plain Ordinary Java Objects)实际就是普通JavaBeans...--拦截所有请求--> url-pattern>/*url-pattern> 发送其他形式的请求 1.创建一个post表单 2.在表单中携带一个_method...springMVC字符编码Filter无效问题解决 springMVC字符编码Filter无效 POST方式: GET方式: 字符编码的filter一般都在其他filter之前

    79540

    Flink基础篇|官方案例统计文本单词出现的次数

    这里读取我们项目下的wordCount.txt文件中的内容。而readTextFile方法是创建一个数据集,该数据集表示按行读取给定文件所生成的字符串。默认情况下将使用UTF-8字符集读取该文件。...其他的方法用途如下:readTextFile(String filePath, String charsetName):读取文本文件返回数据集文件路径文件编码(不指定时默认是UTF-8字符集)readFile...有点类似于readTextFile(String),需要注意的是在生成的数据集中包含可变的StringValue对象,而不是Java字符串。默认情况下也是使用UTF-8字符集逐行读取文件。...文件路径文件编码格式是否跳过验证行注意⚠️:在读取时如果没有特殊说明,都是按行读取,且读取编码默认为UTF-8字符集。(3)数据转换Map算子是Flink 中最简单、最常用的算子之一。...算子可以执行各种数据处理操作,如过滤、映射、聚合、连接、排序等。Flink提供了许多内置的算子,同时也允许用户自定义算子以满足特定的需求。

    43100

    REST API 安全设计指南

    采用hmacsha256算法得到一个hash值sign,构造途中的url发送给服务端。...rest_api是从url获取的为/rest/v1/interface/eth0,最后计算sign值,完之后和url中的sign值做校验。...2.4 JWT JWT 是JSON Web Token,用于发送可通过数字签名和认证的东西,它包含一个紧凑的,URL安全的JSON对象,服务端可通过解析该值来验证是否有操作权限,是否过期等安全性检查。...4、URL过滤 在进入逻辑处理之前,加入对URL的参数过滤,如 ?...8、重要ID不透明处理 在系统一些敏感功能上,比如/user/1123 可获取id=1123用户的信息,为了防止字典遍历攻击,可对id进行url62或者uuid处理,这样处理的id是唯一的,并且还是字符安全的

    3.4K80

    OpenFeign高级用法:缓存、QueryMap、MatrixVariable、CollectionFormat优雅地远程调用

    configuration: 含义:指定Feign客户端的配置类。在这个配置类中,可以自定义Feign的各种参数,如请求拦截器、编码器、解码器等。...这在构建具有多个查询参数的API调用时特别有用,因为它允许你以声明式的方式组织这些参数,而不是手动构建查询字符串。 简单点说:可以将一个对象中的所有属性值以get的方式拼接到地址栏进行传递。...使用 @MatrixVariable @MatrixVariable 被用来接收一个映射(Map),其中键是字符串,值是字符串列表。这在处理可能包含多个值的矩阵变量时非常有用。...矩阵变量的值可以是单个值,也可以是用逗号分隔的多个值,这取决于你的 API 如何设计。 使用矩阵变量时,要确保你的 URI 编码和解码逻辑能够正确处理这些变量,特别是当值中包含特殊字符时。...当你在Feign客户端的方法中使用集合类型的参数(如 List)时,这个注解能够帮助你定义如何将集合中的元素串联起来,以便通过HTTP请求发送给服务端。

    55000

    API 安全测试的 31 个 Tips

    将content-type更改为“application/xml”,在请求主体中添加一个简单的xml,并查看API如何处理它。...HTTP bodies/headers 中的id往往比url中的id更容易受到攻击。首先试着关注他们。 TIP10 利用REST的可预测特性来查找管理API endpoints!...如果身份验证机制不支持cookie,那么这个API就被设计为防止CSRF。 TIP12 即使ID是GUID或非数字类型的值,渗透测试人员也要尝试发送一个数字值。例如: / ?...id=&id= Send wildcard {"user_id":"*"} 在某些情况下,AuthZ机制需要一个普通字符串(在本例中是一个ID),如果它接收到一个JSON,...然后,当输入到数据获取组件时,使用JSON而不是字符串(e。g:它扁平化了JSON) TIP27 BE服务器不再负责保护XSS攻击。api不返回HTML,而是返回JSON。

    1.8K30

    web 应用常见安全漏洞一览

    SQL 注入 SQL 注入就是通过给 web 应用接口传入一些特殊字符,达到欺骗服务器执行恶意的 SQL 命令。 SQL 注入漏洞属于后端的范畴,但前端也可做体验上的优化。...信息泄露 由于 Web 服务器或应用程序没有正确处理一些特殊请求,泄露 Web 服务器的一些敏感信息,如用户名、密码、源代码、服务器信息、配置信息等。...所以一般需注意: 应用程序报错时,不对外产生调试信息 过滤用户提交的数据与特殊字符 保证源代码、服务器配置的安全 10....目录遍历漏洞 攻击者向 Web 服务器发送请求,通过在 URL 中或在有特殊意义的目录中附加 ....../ 的一些变形(如 ..\ 或 ..// 甚至其编码),导致攻击者能够访问未授权的目录,以及在 Web 服务器的根目录以外执行命令。 11.

    77030

    Spring注解篇:@RequestBody详解!

    这些转换器负责将请求体中的JSON、XML等格式的数据转换成Java对象。使用案例分享假设我们需要实现一个用户注册的API端点,客户端通过发送JSON格式的请求体来提交用户信息。...@PathVariable Long productId:通过@PathVariable注解,方法参数productId绑定了URL路径中的{productId}占位符,获取产品的ID。...测试用例分析这段Java代码演示了如何在Spring Boot应用程序中使用@RequestBody注解来处理HTTP POST请求的请求体。...它使用@RequestBody注解来接收请求体中的内容,并将其绑定到方法参数content上。返回值:handlePostRequest方法返回一个字符串,该字符串包含了请求体的内容。...同时,@PathVariable注解用于从URL路径中提取产品ID,以指定需要更新的资源。 这种结合使用注解的方式,不仅提高了代码的可读性和维护性,而且使得API的设计更加直观和符合REST原则。

    3.1K21

    REST API 最佳实践

    1.REST API 设计建议 1.用名词表示资源 当你设计一个 REST API 时,你不应该在端点路径中使用动词。端点应该使用名词,表示它们各自的作用。...11.URL Query 使用下划线分隔单词 查询字符串是 URL 的组成部分。URL 规范规定查询字符串的不同参数使用与号(&)分隔,参数名与值使用等号(=)分隔。...当我们在 URL Query 中命名参数名称与值时,建议使用下划线。 如一个使用下划线的查询参数可能如下所示: https://api.example.com/users?...下面的表格显示了不同的 HTTP 状态代码范围和它们的含义: 状态码 含义 1XX 信息性回应,如 102 表示该资源正在处理中 2XX 成功,如 200 表示请求被正确处理 3XX 重定向,如 301...运行在 SSL 上的 REST API 的 URL 与不运行在 SSL 上的 URL 的明显区别是 HTTP 中的 “s”:https://mysite.com/posts 运行在 SSL 上,http

    2.1K20

    RESTFUL API 安全设计指南

    算法得到一个hash值sign,构造途中的url发送给服务端。...是从url获取的为/rest/v1/interface/eth0,最后计算sign值,完之后和url中的sign值做校验。...2.4 JWT JWT 是JSON Web Token,用于发送可通过数字签名和认证的东西,它包含一个紧凑的,URL安全的JSON对象,服务端可通过解析该值来验证是否有操作权限,是否过期等安全性检查。...四、URL过滤 在进入逻辑处理之前,加入对URL的参数过滤,如/site/{num}/policy 限定num位置为整数等,如果不是参数则直接返回非法参数,设定一个url清单,不在不在url清单中的请求直接拒绝...在系统一些敏感功能上,比如/user/1123 可获取id=1123用户的信息,为了防止字典遍历攻击,可对id进行url62或者uuid处理,这样处理的id是唯一的,并且还是字符安全的。

    1.7K20

    Spring MVC 学习总结(三)——请求处理方法Action详解

    不用{}[]特殊字符! * ’( ) ; : @ & = + $ , / ? # [ ]) 2、对请求编码解码。...true,如果请求中没有指定的参数会报异常;defaultValue用于设置参数的默认值,如果不指定值则使用默认值,只能是String类型的。...一般情况下来说常用其来处理application/json类型。 通过@requestBody可以将请求体中的JSON字符串绑定到相应的bean上,当然,也可以将其分别绑定到对应的字符串上。...> 目录结构变化后如下所示: 运行结果: 小结:主要是借助了标签url value="/images/3.jpg">url>,将路径转换成“绝对路径”;建议在引用外部资源如js、css...当返回值为自定义类型时Spring会把方法认为是视图名称,与返回值为void的类似办法处理URL,但页面中获得数据比较麻烦,示例代码如下: @RequestMapping("/action39

    2.9K10

    Spring注解篇:@PathVariable详解!

    前言在Spring MVC框架中,@PathVariable注解是一个强大的工具,它允许我们将URL中的路径变量映射到我们的处理方法中。...测试用例分析这段Java代码演示了如何在Spring Boot应用程序中使用@PathVariable注解来处理包含路径变量的HTTP请求。...getResource**方法**:这是一个处理方法,当HTTP GET请求到达/api/resources/123(假设123是路径变量的值)这样的路径时被调用。...它使用@PathVariable注解来接收URL中的resourceId参数。返回值:getResource方法返回一个字符串,显示资源的ID。这个字符串将作为HTTP响应的正文发送给客户端。...发送HTTP GET请求:使用工具(如Postman或curl)向http://localhost:8080/api/resources/123发送GET请求。

    91610

    SpringBoot学习笔记(三)——Spring MVC控制器、 Restful、Swagger

    目录 一、Spring MVC控制器 1.1、控制器 1.2、@RequestMapping 1.2.1、value 属性指定映射路径或URL模板 1.2.2、指定具体路径字符 1.2.3、路径变量占位...通过路径变量的类型可以约束访问参数,如果类型不一样,则访问不到action,如这里访问是的路径是/action3/1/a,则路径与方法不匹配,而不会是参数转换失败。...指定处理请求的提交内容类型(Content-Type),例如application/json, text/html,收窄请求范围,如果用户发送的请求内容类型不匹配则方法不会响应请求,具体使用如下代码所示...约束客户端发送的请求头部信息中必须包含某个特定的值或不包含某个值,作用范围明显大于前面讲过的几种,示例代码如下: //请求头部信息中必须包含Host=localhost:8088 @RequestMapping...那么,控制层方法的返回值是如何转化为json格式的字符串的呢?其实是通过HttpMessageConverter中的方法实现的,因为它是一个接口,因此由其实现类完成转换。

    1.7K10

    Spring MVC 的请求映射与参数

    1 控制器方法的参数 (1)请求参数的获取  编码处理 HTTP 请求的首要问题是要获取用户所提交的参数。...如果 return 后面跟着”redirect: ”开头的字符串,表示的是重定向行为(相当于 response.sendRedirect(…) ); 如 果 不 是 , 则 表 示 是 转 发 行 为...request 中必须包含某些参数值是,才让该方法处理 headers 指定 request 中必须包含某些指定的 header(请求头)值,才能让该方法处理请求 在简单的情况下,我们至少应该设置@...1 : page; … } 但这种方式在使用时一定要注意 null 值处理,例如上述代码中的“page = page==null?...在 Spring MVC 中我们不应该经常调用 Servlet API,因此框架给我们提供了编码过滤器,通过设置过滤器,就能指定请求的编码设置。

    1.7K20

    5个REST API安全准则

    当开发REST API时,从一开始就必须注意安全方面。 REST是通过URL路径元素表达系统中特定实体的手段。REST不是一个架构,而是一种在Web上构建服务的架构风格。...3 - 输出编码 (1)安全头部 为了确保指定资源的内容被浏览器正确解释,服务器应始终发送带有正确Content-Type的Content-Type头,并且Content-Type头最好包含一个字符集...(3)XML编码 XML绝不应该由字符串连接构建。 它应该始终使用XML序列化器构造。 这确保发送到浏览器的XML内容是可解析的,并且不包含XML注入。...当设计REST API时,不要只使用200成功或404错误。 以下是每个REST API状态返回代码要考虑的一些指南。 正确的错误处理可以帮助验证传入的请求,并更好地识别潜在的安全风险。...200 OK -回应一个成功的REST API的行动。HTTP方法可以是GET,POST,PUT,PATCH或DELETE。 400错误请求 -请求格式错误,如消息正文格式错误。

    4.2K10
    领券