【发布时间】:2014-04-18 15:11:41
【问题描述】:
结识Sails for Node。
我需要习惯的一件事是使用blueprints 设置控制器方法的路由的“自动”方式。
例如,从文档中,如果启用了actions-blueprints(默认情况下)将为每个控制器生成 GET、POST、PUT 和 DELETE 路由行动。
例如,从文档中,当您获得受控方法 EmailController.send 时,将创建以下路由:
* `EmailController.send`
* :::::::::::::::::::::::::::::::::::::::::::::::::::::::
* `GET /email/send/:id?`
* `POST /email/send/:id?`
* `PUT /email/send/:id?`
* `DELETE /email/send/:id?`
文档特别声明:actions 默认启用,并且可以用于生产 - 但是,您必须非常小心不要无意中将不安全的控制器逻辑暴露给 GET 请求。。 p>
通常我会为一个特定的 HTTP 动词(例如:POST)编写一个控制器方法。这显然与这种自动布线不兼容,因为这些方法也会暴露在 GET(以及 PUT 和 DELETE)上,恕我直言,这会留下巨大的安全足迹。
那么:启用这些actions 的实际用途是什么?对我来说,这似乎是一个巨大的安全风险。另一方面,我可以(理论上)想象用条件逻辑编写 all 控制器方法来区分 HTTP VERBS ,但对于大多数控制器方法来说,这没有意义。
所以请帮帮我:使用这些 actions 有什么好处,Sails 似乎试图推动我前进?或者它只是一种快速上手的方式,但实际上并不适合生产?
感谢您关注这个问题。
【问题讨论】: