客户端上传到数据库

时间:2015-01-11 09:46:28

标签: python postgresql security csv

我设置了一个python脚本,可以在玩游戏时捕获用户的游戏数据。这样做的最终目标是将所有数据从每个用户获取到我的Web服务器上的postgresql数据库,在该数据库中可以通过django整理和显示所有数据

我看到它的方式,我有2个选项来完成这个:

  1. 当python脚本运行时,我可以直接打开与数据库的连接并实时上传到该数据库
  2. 在游戏会话期间,我可以将csv文件保存到他们的计算机,而不是直接上传到数据库,并且有一个单独的应用程序可以找到这些日志文件并在以后将它们上传到数据库
  3. 我喜欢(1)因为这意味着这些日志文件不能被用户篡改,因为它直接进入数据库 - 因此我们可以防止伪造并确保有效数据。

    我喜欢(2)因为最初的python脚本是每个用户在他们的计算机上都会拥有的东西,这意味着他们可以随意打开它(它必须以这种方式与游戏一起工作)。换句话说,如果我去了(1)用户将被暴露给用户/传递细节以连接到不安全的数据库。使用(2)app可以只是一个exe,你无法看到源代码,也无法看到db登录的详细信息

    我的问题:

    1. 因此,在一种情况下我会公开登录详细信息,而在另一种情况下我会冒着上传用户篡改csv文件的风险。是否有一种方法可以结合两种方法的优点而不必处理缺点?

    2. 至少,如果我不得不选择这两种方法中的任何一种,那么最好的办法是解决它的垮台问题吗?那么是否可以防止在公开可用的python脚本中公开db凭证?如果我必须保存csv文件,有没有办法防止篡改或检查它是否被篡改?

2 个答案:

答案 0 :(得分:1)

是否使用REST和JSON将数据发布到远程服务器?

在这种情况下,您可以为通过HTTP持续将数据发布到远程服务器的客户端编写JSON脚本(例如REST)。

这样可以降低数据被篡改的风险,并且您不必公开任何数据库凭据。

答案 1 :(得分:1)

该脚本使用login / pwd或unique string向Django Web服务器发出POST请求。 Web服务器验证凭据并将数据插入DB。