场景:Web应用程序允许用户登录telegram >>登录后在服务器中创建“.session”sqlite文件问题:我现在可以完全访问N个用户的Telegram帐户问:有没有一种方法可以让我(开发人员)无法访问他们的会话文件,而他们(浏览器客户端)在会话期间可以完全访问它?注意:当他们向端点发出HTTP请求时,我仍然需要使用他们的会话文件来获取特定的消息。但是我不需要看这些数据,只有他们需要看。
j5fpnvbx1#
不,您当前使用的架构对于服务器上的安全数据存储并不理想。即使您加密了会话文件,也必须在服务器端对其进行解密才能进行Telegram API调用,从而可能暴露用户数据。将这些数据存储在用户的浏览器中可能是一种替代方法,但它会阻止您代表用户采取任何操作,除非他们正在积极登录。为了更好地回答你的问题,你需要清楚地指定你的应用想要通过Telegram会话实现什么,并在此基础上,你可能会有更安全的方法。
falq053o2#
虽然没有明确提到,但“telethon”标签被添加到了问题中,因此我将假设这是您打算使用的库。Telethon的v1默认存储确实是一个SQLite数据库,但它不需要是。这只是一个好的默认。会话的存在主要是为了保存用于加密与Telegram通信的授权密钥。一旦您登录,Telegram就会记住此授权密钥已登录,并且在将来不需要登录,直到注销。一旦你有一个登录的授权密钥,你有完全访问帐户。这意味着如果你不想冒着所有文件都被泄露的风险,那么服务器拥有它永远都是不安全的。唯一的选择是只在客户端与Telegram通信。在网络上使用Python可能是可行的,但可能不是最好的主意。然而,有一些JavaScript库,如gram-js,是受Telethon启发的,可以帮助您解决问题。
2条答案
按热度按时间j5fpnvbx1#
不,您当前使用的架构对于服务器上的安全数据存储并不理想。即使您加密了会话文件,也必须在服务器端对其进行解密才能进行Telegram API调用,从而可能暴露用户数据。将这些数据存储在用户的浏览器中可能是一种替代方法,但它会阻止您代表用户采取任何操作,除非他们正在积极登录。为了更好地回答你的问题,你需要清楚地指定你的应用想要通过Telegram会话实现什么,并在此基础上,你可能会有更安全的方法。
falq053o2#
虽然没有明确提到,但“telethon”标签被添加到了问题中,因此我将假设这是您打算使用的库。
Telethon的v1默认存储确实是一个SQLite数据库,但它不需要是。这只是一个好的默认。
会话的存在主要是为了保存用于加密与Telegram通信的授权密钥。一旦您登录,Telegram就会记住此授权密钥已登录,并且在将来不需要登录,直到注销。
一旦你有一个登录的授权密钥,你有完全访问帐户。这意味着如果你不想冒着所有文件都被泄露的风险,那么服务器拥有它永远都是不安全的。
唯一的选择是只在客户端与Telegram通信。
在网络上使用Python可能是可行的,但可能不是最好的主意。
然而,有一些JavaScript库,如gram-js,是受Telethon启发的,可以帮助您解决问题。