我正在遵循本教程:http://pythonforengineers.com/build-a-reddit-bot-part-1/,并在 Create Reddit App 小节中指出,我不应直接在脚本中拥有任何登录凭据,因为“其他人可能会看到他们。
现在,您需要更新praw ini文件以记住这些设置。否则,您必须将它们放入脚本中,这很危险(其他人可能会看到它们)。
我的脚本是否上传到Reddit,然后可以在其他人那里读取?如果不是,那为什么不安全?
答案 0 :(得分:3)
如果您只是将此机器人作为概念证明而开发,并且始终从要在其上进行开发的计算机上运行它,则几乎不会泄漏您的凭据。 但是,大多数代码都无法生存,因为只有一个系统上只有一个副本。绝大多数现代软件开发最佳实践均基于以下假设:不同的计算机将开发代码,存储代码的版本并实际运行代码。
如果您在登录脚本中对登录凭据进行硬编码,并且仅在计算机上运行,则不会有问题。 如果您需要帮助调试机器人该怎么办?如果您真的为此感到骄傲并想要炫耀怎么办?如果要将备份存储在另一个系统上怎么办?如果您不希望它在开发它的同一台计算机上运行?包含登录凭据的代码突然在多台计算机上共享。您的代码使用的系统越多,某人越容易访问它们。这就是为什么不使用硬编码密码(例如登录凭据,脚本或代码)这样的秘密作为软件开发最佳实践的原因。
在本教程中,您正在按照他们的指示来指导您在VM上运行代码,并使用git进行源代码控制。一旦将凭据提交到git中,它们将始终成为该存储库git历史记录的一部分。如果您曾经将回购协议托管在诸如GitHub之类的远程系统上,则您的凭据将存储在您控制范围之外的系统上。