自动登录网站

时间:2014-07-27 14:47:21

标签: javascript html web

我有一个第三方网站,我的客户希望我登录,以便定期下载一些数据。
数据是客户特定的,并受密码保护。 我有用户名/密码,我已经搜索了自动登录的方法,以便我可以提取数据,但到目前为止还没有成功。 这是我尝试过的一种方法: http://crunchify.com/automatic-html-login-using-post-method-autologin-a-website-on-double-click/

当我查看我尝试登录的网站的登录页面(查看源代码)时,我看不到登录表单,但是如果我点击Chrome中的“检查元素”字段页面确实显示有一个隐藏在那里的登录表单。 任何建议

编辑:
这是我需要自动登录的网站:http://portal.dorad.co.il/#/Login不幸的是它不是英文版。第一个字段是用户名,第二个字段是密码,按钮是登录

EDIT2:
根据pomeh的建议,我能够找到正在修改文本框时触发的jQuery代码。现在我想使用 element.DomContainer.Eval

手动运行此脚本
(function(n,t){function vi(n){var t=n.length,r=i.type(n);return i.isWindow(n)?!1:1===n.nodeType&&t?!0:"array"===r||"function"!==r&&(0===t||"number"==typeof t&&t>0&&t-1 in n)}function ne(n){var t=li[n]={};return i.each(n.match(s)||[],function(n,i){t[i]=!0}),t}function uu(n,r,u,f){if(i.acceptData(n)){var s,h,c=i.expando,a="string"==typeof r,l=n.nodeType,o=l?i.cache:n,e=l?n[c]:n[c]&&c;if(e&&o[e]&&(f||o[e].data)||!a||u!==t)return e||(l?n[c]=e=tt.pop()||i.guid++:e=c),o[e]||(o[e]={},l||(o[e].toJSON=i.noop)),("object"==typeof r||"function"==typeof r)&&
...
(t=n(this);r=r.not(t),t.removeData(f),r.length||clearTimeout(c)},add:function(t){function s(t,u,e){var s=n(this),o=n.data(this,f);o.w=u!==i?u:s.width(),o.h=e!==i?e:s.height(),r.apply(this,arguments)}if(!u[o]&&this[e])return!1;var r;if(n.isFunction(t))return r=t,s;r=t.handler,t.handler=s}}}(jQuery,this)

我不确定如何激活它并为其提供相关数据。

2 个答案:

答案 0 :(得分:0)

也许您可以使用网络报废框架来执行此操作,例如:

无论如何,我认为客户端解决方案会带来很多问题。也许您可以使用指向该页面的form标记登录,但您之后无法操作该页面。此外,由于CORS限制,您可能无法使用AJAX。您可以将目标页面嵌入为iframe,但由于使用了不同的域,您无法操纵页面(您可以在某些条件下执行此操作,但很难实现此目的恕我直言)。所以服务器端解决方案对我来说听起来更好。

答案 1 :(得分:0)

如果您拥有正确的技术要求组合,那么您需要单站点登录(SSSO)。

并非所有客户都拥有SSL,而且我不想在其所有网站上使用我的用户名和密码。然而,它们都在同一台服务器上。由于我的网站支持SSL,我可以安全地登录我自己的网站。

从概念上讲,您需要记录管理员帐户的IP以及数据/时间戳。然后,如果您从同一IP访问您客户的网站(同样,在同一台服务器上),您可以使用脚本语言检查该文件。我需要一个很短的时间跨度(在30秒到2分钟之间的任何地方)和相同的IP地址。您可以添加其他技术要求以加强安全性,但您的选项将受到限制,因为域名将有所不同。如果IP符合条件,则模拟正在进行身份验证的用户(显然是静态的,因为您可能在其网站上获得了管理帐户信息),并且您可以自动登录。