本人再举荐一个微博登录的问题:

 

操作:在微相关页面:比如以下中招的:微访谈http://talk.weibo.com/)等,就那这举例吧

 

  • 未登录用户,在http://talk.weibo.com/ 站点采用顶导点击登录
  • 弹出登录浮层,输入正确的东东
  • 咔-----回车,悲剧出现了:当前页面是http://login.sina.com.cn/

-------------------------而不是正常的返回到http://talk.weibo.com/  的登录状态。

 

问题

 

       不会还没有发现问题吧?  亲,登录没有在中间跳转页面成功重定向到登录前的页面

 

原因

 

    我来给你分析以下:

 

    经一系列测试回归得出下面真实结论:

 

    因为:

 

   在微访谈的页面配置了:

 

 

   而这个参数会在登录的时候加上下面这个请求里面

 

 

 

   我的疑问就是在这个参数,试验吧这个entry改为空,-------------- 测试通过正常,

 

   那我就各种找其他微应用:其实很少有微***配置这个参数,不过功夫不负有心人,我找到了“微搜索”

 


 

  而我们在http://s.weibo.com/ 居然可以成功登陆跳转,那我想所有人都有一个想法:

 

    我要把这个可以的entry的值拿过了,放在不是s.weibo.com的其他微应用里面试验,结果:

 

    居然成功了,请注意我的来源不是s.weibo.com,虽然我用了人家的entry,能不能加点验证啊!!!!

 

 

     总结吧:

 

       文档说的entry是注册的时候用的,但是注册其实就是一个链接:

 

<a href="http://weibo.com/signup/signup.php?topnav=1&wvr=5">注册</a>


 

    我配置了entry,请问是不是没有读一下啊!!!!!!!!!!

 

 

 

 

----------- 结论

 

http://login.sina.com.cn/sso/login.php?entry=*** 会挂掉? (莫非白名单???)

 

目前给出的方案:

 

  • 要么配entry为空吧
  • 要么配entry为“weisousuo” --------- 不”合适“的做法

 

 

 

 

 

 

 

--------------------------- old 不相关莫看-------------------------------------

 

本文是个人最近发现的weibo头脚本的一个潜在问题,请指教。

 

现在很多第三方多会调用微博的:http://js.t.sinajs.cn/t4/home/js/public/topInit.js

 

目的是:进行微博头调用加载等。

 

直入主题

 

以下是我的操作:

 

 


var $CONFIG = {     //..........各种配置
     //重点是这个参数,假如我现在是这样写的,而且很多应用可能这么写
     backurl:window.location.href
     //........
}


 

下面我们测试一个地址(注意参数!)

 

 

 


//可以是一些应用的地址,只要挂?后面的//如下是一个测试地址
********.com/?key="><iframe/οnlοad=document.write(/1111/)>


 

当然我是在登录以后手动输入以上地址,因为未登录状态重定向后会对字符进行转义。

 

我们会发现:

 

 

 

然后就挂了:

 

 

当然是ie下才会出现,ie不会对字符转义。

 

 

 

流程其实还是很简单

 

topInit 会按照 _wv 调用top.js,

 

这边:

 

 

------------------  是直接对用户页面的配置参数进行赋值的!!!

 

 

问题就这边

 

如果像上面我这样操作,就会出现执行脚本!!!!!!

 

 

原因还是:

 

backurl一个地方也没有encode!!!!!!!!!!!!!!!!!!!!!!!!!!

 

 

建议

 

个人觉得还是top来做encode,或者是否在使用文档里面强烈标注:backurl的参数需要encode一下!!!!!!!

 

 

 

------------本文只是从前端js脚本去考量,当然一般后端也可以做url关键字屏蔽或者重定向等!!!只是探讨技术而已!!