你好获取登录信息中




首页 主站 文章列表 分类列表
查看文章返回文章列表

谈谈Referer

发布时间:2017-04-11 17:15:39 by:



这几天一直在弄青果教务系统的客户端(为以后扫描余课、甚至辅助抢课做准备)。虽然是弄了好几天,可是进展不大,试尽各种方法都不行,最后才发现是一个非常简单的问题——Referer——而且两次遇到这个问题我都没想到。,是在是惭愧。 首先说说Referer,这是http协议中请求头的一个东西,用来告诉服务器这个请求是从那个页面发起的(比如页面上的图片、CSS、js等资源加载以及超级连接被点击后加载的页面) 还要说的是我自己做网站的时候几乎不验证Referer的,我知道很多网站的表单会验证这个来判断提交是否合法。不过实际上做那些机器人的也会考虑到这一点,dz就有验证,不过仍然会有机器人注册大量帐号发布大量的垃圾信息以及广告,所以也就没有必要了。同时,我认为网站做出来就是让别人用的,恶意提交再防止也会有,这些机械化的验证方式总是会被想方设法绕过的,一般我遇到这种问题都是先封IP段(当然咯,对于大网站这种方法并不合适,但是我这种小网站来说成本低效果好),而复杂的验证反而会给正常的提交带来麻烦(比如验证码就需要浪费时间来填写,当然适当的验证码不需要浪费太多的时间而可以有效的阻挡机器恶意批量提交垃圾信息——不合理的验证码当然也能阻止恶意提交,但是正常的提交也被阻挡了)。 由于本人的习惯,已经很长的时间没有使用Referer了,而且本人亲测青果这个软件基本上也不会检测这个——很多在frame中的页面都可以单独打开。第一次是在提交登录表单的时候,报的错也是非常奇怪的什么未绑定到实例还是什么乱七八糟的东西,可能是用的c#自带的组件或者是写了什么乱七八糟的东西吧,还有一个问题、是在验证码上,验证码是正常显示出来了的,不过服务器永远会说我提交的验证码是错误的,我一直以为是加密出了问题(青果教务系统的验证码是加密提交的)或者是漏了信息未提交,然而反复比较浏览器提交的内容和我写的程序提交的都是一样的,只是顺序不同,不过一般网站都不会直接使用,所以这个顺序应该是不可见的,思考了很久后才想起是不是也要提交Referer,试一试,问题果然解决了。 为了这种问题浪费这么多时间真是,,而且是两次遇到这个问题,也许是c#本来的“特性”,也能是那帮开发者写得就比较奇怪,不过我也是该好好想想了,以后不能在这方面浪费时间了。

评论
    还没有评论
发表评论
正在等候用户中心返回数据
杂项
。。。