因此,一般来说,像 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/