我正在编写一个 Facebook 画布 Web 应用程序,它执行对第三方网站的登录(使用 urllib)并代表用户执行操作。这意味着我有2个账户;用户在我的网络应用程序中拥有的帐户(通过 facebook)以及应用程序用来代表他们执行登录的帐户(使用用户提供的用户/密码详细信息)。
我显然不希望数据库中有明文密码。但我也不希望用户每次执行操作时都必须输入密码。我希望他们在注册时输入一次密码,并且我想对密码进行加密,但是我要加密什么?
服务器上的任何密钥都可供任何获得访问权限的人使用(即无用),因此我正在考虑根据 Facebook API 提供的值对其进行加密。
当用户登录(并向应用程序提供访问令牌)时,应用程序可以通过 API 请求该值,并用该值加密/解密其第 3 方密码。如果用户未登录应用程序,任何有权访问服务器的人都无法发出此请求。 (这仍然意味着窥探服务器的人可以获得登录用户的第 3 方密码,但任何一次性访问数据库的人都看不到密码。)这是一厢情愿吗?
您也可以使用服务器上的密钥对其进行加密。如果任何人获得对您服务器的访问权限,他们将拥有检索密钥所需的一切,即使您是从 Facebook 获取密钥的。
我认为您能做的最好的事情就是将密钥存储在您的网络服务器无法使用但您的脚本可用的位置。至少确保您没有将密钥存储在数据库中。
除此之外,无论你做什么,都只是默默无闻的安全。这里的关键是确保您的服务器安全,以便没有人可以访问它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)