Python 客户端上传到数据库

Python 客户端上传到数据库,python,postgresql,security,csv,Python,Postgresql,Security,Csv,我已经设置了一个python脚本,它可以在玩游戏时从用户那里捕获游戏数据。这项工作的最终目标是将来自每个用户的所有数据输入到我的web服务器上的postgresql数据库中,在那里可以通过django对所有数据进行整理和显示 在我看来,我有两个选择来实现这一点: 当python脚本运行时,我可以直接打开到db的连接并实时上传到db 在游戏过程中,我可以将一个csv文件保存到他们的计算机上,并使用一个单独的应用程序查找这些日志文件,稍后再将其上载到db,而不是直接上载到db 我喜欢(1),因为这意

我已经设置了一个python脚本,它可以在玩游戏时从用户那里捕获游戏数据。这项工作的最终目标是将来自每个用户的所有数据输入到我的web服务器上的postgresql数据库中,在那里可以通过django对所有数据进行整理和显示

在我看来,我有两个选择来实现这一点:

  • 当python脚本运行时,我可以直接打开到db的连接并实时上传到db
  • 在游戏过程中,我可以将一个csv文件保存到他们的计算机上,并使用一个单独的应用程序查找这些日志文件,稍后再将其上载到db,而不是直接上载到db
  • 我喜欢(1),因为这意味着这些日志文件不能被用户篡改,因为它直接进入数据库-因此我们可以防止伪造并确保有效数据

    我喜欢(2),因为最初的python脚本是每个用户都会在他们的计算机上使用的,这意味着他们可以随意打开它(必须是这样才能在游戏中使用)。换句话说,如果我使用(1),用户将暴露于连接到不安全的db的用户/通行证详细信息。使用(2)时,应用程序可能只是一个exe,您无法查看源代码和db登录详细信息

    我的问题是:

  • 因此,在一种情况下,我会公开登录详细信息,在另一种情况下,我会冒最终用户在上传之前篡改csv文件的风险。有没有一种方法可以结合这两种方法的优点而不必处理缺点

  • 至少,如果我必须选择这两种方法中的任何一种,那么什么是避免其崩溃的最佳方法?那么,是否可以防止在公开可用的python脚本中公开db凭据?如果我必须保存csv文件,有没有办法防止篡改或检查是否被篡改


  • 使用say REST with JSON将数据发布到远程服务器是一种替代方法吗

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


    这将降低数据被篡改的风险,并且您不必公开任何db凭据。

    脚本使用login/pwd或唯一字符串向Django web服务器发出POST请求。
    web服务器验证凭据并将数据插入数据库。

    这些方法仍然需要某种身份验证吗?在不公开主数据库用户/密码的情况下,如何对该数据进行编码?