2013-10-15 26 views
0

我创建了我的第一个微控制器设备,我希望它将数据推送到网站。基本上它收集数据,我想将它存储在数据库中。但有多个设备,我不希望设备能够读取其他设备上传的数据。现在我想知道最安全的方法是什么?如何使设备与远程数据库安全通信?

服务器运行Debian,我有完全访问权限。该设备运行Debian以及我编码在Python中。

这些都是我想出了想法:

  • 使设备填写表格,网站
  • 上使设备连接到MySQL直接

那么,什么是最简单的方法为了做到这一点?填写表单似乎对我来说最简单,但发送POST数据真的是一个好习惯吗?我如何处理身份验证?

连接到Mysql似乎不好,因为我并不想授予对整个表的访问权限。但也许一个“只加 - 不读”的限制是可行的。

+0

您已经拥有一个网站?如果你这样做,它使用什么技术? – alexvassel

+1

我会推荐一个更新的Web服务。有很多可以实现的安全方案。首先想到的是让设备在调用Web服务时提供凭据 - 每次都要传递用户名/密码,或者使用用户名/密码登录并获取令牌以便在后续调用中使用(并且每隔几分钟)。如果设备必须读取,那也是同样的事情:它提供证书,证明它可以看到哪些数据。如果您对此不太了解,请尝试先完成读写操作,然后再添加安全性。 –

+0

我想限制权限是一个整洁的KISS方式来做到这一点。如果您设法将设备的权限限制为“INSERT”或“UPDATE”查询,则可能会这样做。 –

回答

0

也许你使用一些web框架

  1. 使用REST API到您的网站。大多数Web框架都有REST API扩展。
  2. 只允许PUT,POST许可,没有得到

例如,我使用的Django + tastypie。 tastypie为访问django模型提供了rest API,并提供身份验证和授权。 Django REST framework是另一个不错的选择