我想做一个功能,我知道这几个网站的账号密码,我想写几个方法就是通过这个方法就可以自动跳转到某一个网站并自动登录进去,大神们有没有什么好的建议或者参考,是不是需要给那个网站的登录页面赋值之类的。
具体大概叫模拟登陆,但是现在大公司都有一定的措施防止模拟登陆,
例如滑块验证码,手机号码验证等等。目的是为了减少AI操作产生非真实数据。
对,但是我要登录的都是我公司自己的网站。。为了方便快捷把 用一个公共的系统 都可以登录,而且我要登录的这些网站没有验证码。
@绯村剑心丶:
我的思路如下
1,几个网站做session共享
2,单独网站模拟登陆
倾向方案1
@hahanonym: 第一个不太可行,我这系统源码虽然对我开放但是我不能改,第二个不太懂啊。。有实例吗
@绯村剑心丶: 模拟登陆的例子网上一大堆,既然你都能看到所有的源码,看下他们怎么登陆提交的,后台模拟做一个,然后每次提交带上session信息就行了
@hahanonym: 您的意思是登录成功后,再把session传过去吗 这个应该怎么传
@绯村剑心丶: 思路都已经说了这么清楚还问,你不会自己查查?模拟登陆一查就有了。
在第一次登陆后,选择记住密码和自动登录,这样在之后打开网址的时候,就可以自动登录。(个人建议)
您可能没明白我的意思 就是不跳登录页 直接进到系统中。
加session
您说具体点 这些系统确实是session控制。
仅仅通过网页你基本上是做不到这一点的,如果是通过 webbrowser 模拟应该是可以的。不过,然并卵。
。。我要跳转的这些网站也是我们内部的系统,源代码都有,您有好的建议吗?
@绯村剑心丶: 那就好办了,登录无非就是注册cookie, 但注册cookie是有域名限制的,当前站点只能注册当前站点的域名的cookie,默认就是这样。你需要给几个站点都写一个登录接口,比如一个可以传入用户名和密码的aspx或jsp页面,通过querystring传入,直接在客户端注册cookie,加不加密,是否要定义成httponly,以及身份信息如何加密成cookie,过期时间等,只要把握好,就可以了。然后用js挨个网站调用一下,这些cookie就被注册到浏览器了,也就实现跨站点登录了。页面登录无非就是cookie,现在常见的登录都是。但是这个接口是否要做防黑客攻击限制,就又是另一回事了。
@绯村剑心丶: Session 是如何区分是哪一个Session, 其实还是在客户端注册了一个cookie,叫sessionid, 所以才能做session隔离,而且不同的浏览器 cookie 也是隔离的,不同的 window 登录用户, cookie 也是隔离的。
@沧海一杰: 关于不同的浏览器 cookie 也是隔离,那如果我在浏览器中打开页面时向cookiec传入sessionid实现覆盖,是不是就可以完成跨域的登录跳转了?
@绯村剑心丶: 不是你这样的,一般是可以这样实现。登录A网站时,在A网站的客户端同时调用B网站,C网站的的登录接口(一般是ajax异步调用,当然也可以同步,后者更稳定,但有等待和阻塞),登录接口里提供的就是注册cookie,注意这里注册的cookie就已经是B网站和C网站的cookie了,然后你登录B和C时就可以检测cookie判断用户是否登录了。
用户登录网站A 账号密码保存在session中,自动跳转方法A()
{保存网站A的session ,
怎样自动跳转你没说明确,这里你自己写
把session 以的账号密码参数形式传给网站B 网站B的登录界面+ 账号+密码
这是大致流程
}
我的意思把账号密码写到方法里,我的问题就是 账号密码怎样赋值到B网站的登录界面并且登录的。
@绯村剑心丶: 网站登录界面肯定是提交表单的,如普遍的get体检就是 www.xx.co?name=123&pwd=123 这样就进入到了网站里面去了,
再简单就是,你原先需要输入 name=账号 pwd=密码 点提交 就进入网站内部
现在 你把 session的账号=name session密码=pwd 自动转入的网站内部
在第一次登陆后,选择记住密码和自动登录,这样在之后链接网址的index页面不就行了吗
类似模拟登陆 , 但是要登录到页面中
@绯村剑心丶: http://www.cnblogs.com/zhuiyi/archive/2011/06/17/2083898.html这个你可以看一下