rest - RESTful Web 服务中不安全的 HTTP 方法

标签 rest

因此,一般来说,像 PUT 和 DELETE 这样的 HTTP 方法被认为是不安全的。

但是,建议对 RESTful API 使用 PUT 和 DELETE 方法。

为什么这些方法 PUT 和 DELETE 对于 RESTful API 来说不被认为是不安全的

最佳答案

TL;DR

它们被认为是不安全的,因为网络服务器的默认行为会直接影响服务器文件系统上的文件——允许可执行代码攻击。

RESTful 服务不需要(必须)根据原始请求创建文件。

内部/防火墙/代理

内部 API - 由于位于专用 LAN 中而受到保护。它只能由其他内部(可信)工具访问。

类似地,受防火墙保护的内部或外部 API 仅接受来自某些 IP(受信任服务器)的请求。

代理服务器可以处理加密和用户身份验证以及授权,然后将请求转发到 RESTful 服务。

但是还有哪些安全风险?

如果 PUT 会在服务器上创建可执行文件,这将非常不安全**——因为存在代码注入(inject)/可执行文件注入(inject)的风险...

...但是当接收 PUT 或 DELETE 操作时,我们并不是在谈论文件管理本身。我们正在讨论一个特定的处理程序代码,它分析请求并执行您告诉它对数据执行的任何操作(例如:将其放入数据库)。

**尤其是在您对资源(在 RESTful 上下文中)执行 HTTP PUT 后,人们会期望有权在同一资源上执行 HTTP GET(这意味着该资源将可直接访问)。

关于rest - RESTful Web 服务中不安全的 HTTP 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38462856/

相关文章:

rest - JMeter 3.0 HTTP Put不发送RAW数据

java - postman 发送原始 json 不起作用

javascript - 调用REST api获取图像

api - 我使用什么Amazon REST API来获取书籍信息?

angular - 使用 HTTPparams 422(不可处理的实体)和 FastAPI 在 Angular 中出错

asp.net - 为什么.Net WebApi 不自动检测请求内容类型并进行自动绑定(bind)?

json - 创建用户帐户时正确的 HATEOAS 响应

java - 剩余请求未映射到对象

java - 当我调用 Web 服务 GET 请求时没有响应

java - 无法使用 Java 将 POST 请求中的 ArrayList 发送到 REST 服务器