因为 RESTful Web 服务使用 HTTP URLs 路径,因此以保护网站同样的方式维护 RESTful Web 服务是非常重要的。以下是设计 RESTful Web 服务时要遵循的最佳实践。

  • 验证 - 验证服务器上的所有输入。保护服务器免受 SQL 或者 NoSQL 注入攻击。
  • 基于会话的认证 - 请求一个 Web 服务方法时使用基于会话的认证对用户进行身份验证。
  • URL 不要有敏感数据 - 永远不要在 URL 中使用用户名,密码或者会话标记,这些值应该通过 POST 方法传递给 Web 服务。
  • 限制方法执行 - 允许限制使用方法,比如 GET,POST,DELET。GET 方法不应该能够删除数据。
  • 验证有缺陷的 XML/JSON - 检查格式良好的输入传递给 Web 服务方法。
  • 抛出通用错误消息 - Web 服务方法应该使用 HTTP 错误消息,比如 403 展示禁止访问等。

HTTP 状态码

编号 HTTP 状态码 & 描述
1 200 
OK ,显示成功。
2 201 
CREATED ,当资源使用 POST 或者 PUT 请求建立成功时。使用位置头返回新建资源的链接。
3 204 
NO CONTENT ,当响应体为空时。比如,DELETE 请求。
4 304 
NOT MODIFIED 在有条件的 GET 请求的情况下用于减少网络带宽的使用。响应体应该为空。头信息应该包含日期,位置等。
5 400 
BAD REQUEST ,指出提供的输入无效。比如验证错误,数据缺失。
6 401 
UNAUTHORIZED ,指出用户正在使用无效的或者错误的认证令牌。
7 403 
FORBIDDEN ,指出用户没有使用访问方法。比如,没有管理员权限访问删除操作。
8 404 
NOT FOUND ,指出该方法不可用。
9 409 
CONFLICT ,指出执行方法时冲突,比如添加重复的条目。
10 500 
INTERNAL SERVER ERROR ,指出执行该方法时服务器抛出了一些异常。

RESTful Web 服务 - 安全性相关推荐

  1. 构建 RESTful Web 服务

    from: https://www.ibm.com/developerworks/cn/education/java/j-rest/j-rest.html 开始之前 关于本教程 REST 是一种思维方 ...

  2. 使用Spring开发Java RESTful Web服务的7个理由

    REST现在已成为开发Web服务的标准方法,涉及Java时,可以使用许多框架和库,例如JAX-RS,Restlet,Jersey,RESTEasy,Apache CFX等,但是我鼓励Java开发人员使 ...

  3. 使用Spring Security 3.1保护RESTful Web服务,第3部分

    1.概述 本教程显示了如何使用Spring和基于Java的Spring Security 3.1来保护REST服务 . 本文将重点介绍如何使用"登录和Cookie"方法专门针对RE ...

  4. 如何使用Retrofit,OkHttp,Gson,Glide和Coroutines处理RESTful Web服务

    Kriptofolio应用程序系列-第5部分 (Kriptofolio app series - Part 5) These days almost every Android app connect ...

  5. restful api_将Spring MVC RESTful Web服务迁移到Spring 4

    restful api 1引言 Spring 4为MVC应用程序带来了一些改进. 在这篇文章中,我将重点介绍宁静的Web服务,并通过采用Spring 3.2实现的项目并将其升级到Spring 4来尝试 ...

  6. RESTful Web 服务 - Java (JAX-RS)

    JAX-RS 表示用于 RESTful Web 服务的 Java API.JAX-RS 是一种基于 Java 的编程语言 API 以及为创建 RESTful Web 服务提供支持的规范.2.0 版本发 ...

  7. RESTful Web 服务 - 无状态

    根据 REST 架构,一个 RESTful Web 服务不应该在服务器上保持客户端状态.这种约束被称为无状态.客户端的职责是传递其上下文给服务器,然后服务器存储这个上下文以处理客户端的请求.比如,由服 ...

  8. RESTful Web 服务 - 方法

    正如目前为止我们所讨论的,RESTful Web 服务大量使用 HTTP 动词确定要对指定资源进行的操作.下面的表格演示了常用 HTTP 动词的例子. 编号 HTTP 方法,URI 和操作 1 GET ...

  9. RESTful Web 服务 - 寻址

    寻址指的是定位存储在服务器上的一个或多个资源.类似于定位某个人的邮寄地址. REST 架构中的每个资源都通过它的 URI(统一资源标示符)标识.URI 格式如下: <protocol>:/ ...

最新文章

  1. 完全企业虚拟化方案-Total Enterprise Virtualization
  2. Page 的生命周期学习小结
  3. kettle环境变量/kettle.properties的配置问题
  4. gin自定义路由日志的格式
  5. ctf(pwn) canary保护机制讲解 与 解密方法介绍
  6. Xcode:PhoneGap 2.5.0项目创建方法
  7. OpenCV-PS扩散效果(毛玻璃)
  8. python字符串转化为数字信号_用python实现简单的数字信号软件滤波处理
  9. 来点硬件知识吧,今天求职吃亏了!
  10. 树莓派安装python3.8_在树莓派(Raspberry Pi)上编译安装更新版本的Python
  11. 计算机应用基础统考模拟练习系统,网教计算机应用基础统考综合模拟练习题(一)...
  12. Win10企业版安装应用商店
  13. 百度云盘资源迁移到阿里云盘
  14. 数学建模解决出版社资源配置问题
  15. android自定义锁屏界面设置,android 锁屏壁纸和桌面壁纸的设置实现
  16. java程序的结构与类型实验报告_20172301 《Java软件结构与数据结构》实验三报告...
  17. 机器学习——决策树(ID3)的实现
  18. 「企企通」完成Pre-D轮融资,加速采购供应链工业软件和 SaaS 网络生态构建
  19. 政策更新 | 开发者如何处理软件包可见性
  20. CES生产函数中参数的意义

热门文章

  1. 一枚菜狗子的2016总结
  2. CSS常用样式及示例
  3. 用c实现跨平台异常捕获机制 1
  4. Linux查看内存使用情况
  5. 【机器学习】改善LBP特征提高SVM的可分性的经验总结(二)
  6. hls.js播放hls直播源
  7. ffmpeg为AVPacket添加解码头信息
  8. matlab保存figure图像中所有的点的坐标
  9. DCT算法的原理及实现简介
  10. 编译原理学习笔记一(待续)