登录后,客户端从网站获取数据

时间:2011-09-22 15:19:34

标签: javascript web

我想在我无法控制的网站上导入用户输入其个人资料的数据。我不希望用户将他的登录凭据交给我从服务器端获取数据(直接连接到上述网站)。我宁愿让登录数据保留在客户端的机器上:它使我的服务更值得信赖,而且我不必处理敏感数据。

我认为这可以通过javascript完成,而不会有更大的麻烦。 但是,考虑到安全风险,它似乎被浏览器阻止。请参阅How to get data with JavaScript from another server?

所以我认为我的问题已经回答,可以关闭/删除。

2 个答案:

答案 0 :(得分:1)

我不确定我理解你要做什么,但是没有安全的方法来验证浏览器客户端中的登录凭据。如果要检查登录凭据,则必须涉及服务器。

某些数据可以存储在客户端,但用户可以绑定到特定计算机上的特定浏览器,并且无法从其他任何位置使用该服务。在较旧的浏览器中,数据通常仅限于可以存储在cookie中的内容,并且cookie不能保证在任何特定的持久时间范围内存活。在最新的浏览器中,数据可以存储在HTML5 local storage中,这样可以采用更加结构化的方式存储数据,但即便如此,您仍然会被困在一台特定计算机上的某个特定浏览器中。

根据您的评论,听起来您正在尝试“缓存”来自网站A的数据副本,您可以在多次访问您的网站时从网站B上的客户端代码访问该数据。如果是这种情况,那么听起来HTML5本地存储可能起到缓存存储机制的作用。您将不得不弄清楚如何将网站A中的数据导入缓存,因为缓存将受到同源访问(域X只能访问域X放入HTML5本地存储的数据),但是,如果您可以设法将网站A中的数据导入您的网站B客户端页面(可能使用JSONP),那么您可以使用HTML5本地存储来缓存它。您需要意识到即使HTML5本地存储也不能永远保证(因此,如果需要,您需要能够从网站A再次获取它)。

答案 1 :(得分:1)

你说过这个

  

我不希望用户将他的登录凭据交给我   来自服务器端的数据(直接连接到上述   网站)。

如果您这样做,任何人都可以访问任何用户的数据,因为您不限制对数据的访问。

你也说过这个

  

我宁愿让登录数据留在客户端的机器上:   它使我的服务更值得信赖,我不需要处理   敏感数据。

我真的不确定这是个好主意。您仍然需要锁定个人信息。但无论如何,如果你真的想,你可以使用本地存储 - 现代网络浏览器支持这个。

查看此链接以获取本地存储的入门知识。 Storing Objects in HTML5 localStorage

请注意,用户可以清除浏览器的本地存储空间,因此您仍需要一个表单来输入凭据。

编辑 - 如果要在客户端上保存用户的配置文件信息,可以使用本地存储执行此操作。但是你仍然需要将数据保存到服务器,否则如果用户去另一台机器甚至是浏览器,他们将无法获得数据。此外,您的服务器端模型可能需要以某种方式将用户的内容与其个人资料相关联。我认为没有办法解决它。