开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 1888|回复: 5
收起左侧

[闲聊] 浅说网络验Zheng的实现原理以及利与弊

[复制链接]
结帖率:80% (4/5)
发表于 2015-1-30 00:02:10 | 显示全部楼层 |阅读模式   北京市北京市
本帖最后由 小海>依就< 于 2015-1-30 00:09 编辑

说到网络验证,通常易友们都会想到加密方式以及防破J能力。

    上线用户撇开这一点先不谈,先说一下网络验证到底是个什么东西,其实这没有什么技术含量,充其量就是一个用户系统而已,只不过是把他做成了API,通过调用这个API,使你的程序实现网络用户注册、登陆、修改密码等一系列的功能。

    总的来说,网络验证分为两类吧,一种就是php或者asp编写的个人网络验证系统,它本身就集成了对外开放的API。你需要下载这个验证系统,然后上传到一个web服务器,如果这个服务器支持的话,简单的修改一下这个验证系统的配置文件就可以实现目的。可以自由修改。前提是你得有一台服务器或者web空间。通过get或者post这个系统来提交信息,

    例如:user.321aiyi.com/login.php?username=abc&password=123

    以上这种方式比较常见,但是应用较为麻烦,一般的时候通常是作为一个参考而已,实用性并不大(试问这种网络验证的web程序大家都可以下载使用,包括他的原理,构造都了如指掌,那么用它真的安全吗?)

       我们假设一下,例如我们下载了同样的web程序,你那他上传到了你的web空间拿来用,并且只有注册或者充值的用户才可以用你的程序,尽管软件本身加密的非常好了,但是假如我也下载了一个和你一样的网络验证系统,然后上传到自己的服务器,或者干脆就在本地开一个临时的web服务,然后通过hosts将你的验证地址指向我的地址呢?那么你所做的一切就白费了,我只需要自己的后台中设置一个123的用户,输入123就可以随意的使用你这个程序。




       简单的介绍了这种较为普遍的网络验证,下面还有一种,也是不久兴起的,他是一种封闭式的系统,不对外提供源码,同样,你也不用再额外的配置服务器或者购买web空间,这种系统我叫他《网络用户管理系统》我也做过这个并且现在还在运转,使用量也不低。

这种系统的好处就是更加安全,因为它不是对外开放的,另外无需用户再额外的配置服务器了,它就像QQ一样,你只需注册一个账号就可以在上面随意发挥!而且功能更多更强大,甚至可以交费获取更多的服务,你也不许再因为服务器被公鸡、被入寝、或者数据丢失而担心,这些担心都交给做这个用户系统的作者去吧。你只需注册一个管理员的账号,下载一个开发者API手册,剩下的一切都不用操心了。唯一的一点儿弊端就是,你不能像前者那样随意修改这个系统了,假如发现BUG的话,只能等作者自己去更新。因为你只得到了这个系统的使用权,而且,你没有源码。




下面就以我做过的一个例子来说一下具体心得,(全部自学,老鸟勿喷)

       我做的那种用户系统就属于后者,我叫他阿海网络用户管理系统。谁想用的话,只需话30秒注册一个管理员账号就可以拥有一个自己的后台。然后花10分钟阅读以下API文档就可以上手了。

        他的原理很简单,首先你要明确表结构。第一张表是管理员用户表,他记录了每个注册的管理员的详细信息。第二张表是管理员配置表(你也可以吧前面这两张表写成一张)不过我喜欢分开来写,有助于后期的更新以及扩展。

       第三章表则是管理员的下线用户,也就是普通用户表,他记录了这些个用户的用户名密码,管理员账户(上属用户)积分或者使用期限,是否冻结等信息至于我的写的可就多了,都是后期慢慢加上去的字段,我这个系统后去又加了签到、点数充值、授权时间充值、留言板等等一系列的

       第四列表一直到最后列表,则是管理员的充值卡(或者说是授权码)列表,任何一个注册本系统的管理员,都可以在后台通过图形界面像这个列表添加充值卡,这里每个列表是一种充值卡的类型,比如我第四列表是充值时间的卡密列表,那么第五列表就是充值点数的卡密列表,第六张表可以是一次性永久授权用户的授权码列表。

这样做差不多就大功告成了,接下来,写前台吧还有API吧!


QQ截图20150129234644.png



       API写的方式非常简单,自己不用判断什么,只需向服务器发送请求,所有判断的过程全部放在了服务器端,只管着接受服务器返回来的数据就行了!这样也防止了部分本地破J的可能性。如果有闲情雅致的话,可以在API模块中写一下健壮性判断(尽管在服务器里谢过了)这样的话,假如用户提交不正确的请求,可以在本地的健壮性判断中拦截下来不会发给服务器,会减少很多无用的请求。千万不要小看这一个本地判断,他可以给你的服务器减少多一半的压力!我曾经统计过一次,在API中没有健壮性判断的时候,服务器每两条请求中就有一条是无用的数据这一点儿也不假。处理这些东西会给服务器增加很多压力的。


结帖率:80% (4/5)
 楼主| 发表于 2015-2-1 19:59:13 | 显示全部楼层   北京市北京市
bdching 发表于 2015-1-30 00:31
视为广告贴  你说一大堆 不就为了推广你自己的网站  真正值得做网络验证的软件 那个不是对接到自己的空间  ...

其实吧,还真不是这个意思,就是发现写博客很有意思,自己写了个博客就直接粘过来了,习惯性的说说自己的例子了
回复 支持 反对

使用道具 举报

结帖率:100% (20/20)

签到天数: 16 天

发表于 2015-1-30 00:31:00 | 显示全部楼层   山东省青岛市
视为广告贴  你说一大堆 不就为了推广你自己的网站  真正值得做网络验证的软件 那个不是对接到自己的空间 自己的数据库里 为什么要跑到你网站上去搞 我就呵呵了
回复 支持 反对

使用道具 举报

结帖率:80% (4/5)
 楼主| 发表于 2015-1-30 00:07:55 | 显示全部楼层   北京市北京市
发了半天发不出去说有非法内容,只好分段发送找了半天才找到原因原来是公鸡和入寝和谐了
回复 支持 反对

使用道具 举报

结帖率:80% (4/5)
 楼主| 发表于 2015-1-30 00:06:20 | 显示全部楼层   北京市北京市

       简单的介绍了这种较为普遍的网络验证,下面还有一种,也是不久兴起的,他是一种封闭式的系统,不对外提供源码,同样,你也不用再额外的配置服务器或者购买web空间,这种系统我叫他《网络用户管理系统》我也做过这个并且现在还在运转,使用量也不低。
这种系统的好处就是更加安全,因为它不是对外开放的,另外无需用户再额外的配置服务器了,它就像扣扣一样,你只需注册一个账号就可以在上面随意发挥!而且功能更多更强大,甚至可以交费获取更多的服务,你也不许再因为服务器被攻J、被入Q、或者数据丢失而担心,这些担心都交给做这个用户系统的作者去吧。你只需注册一个管理员的账号,下载一个开发者API手册,剩下的一切都不用操心了。唯一的一点儿弊端就是,你不能像前者那样随意修改这个系统了,假如发现BUG的话,只能等作者自己去更新。因为你只得到了这个系统的使用权,而且,你没有源码。

下面就以我做过的一个例子来说一下具体心得,(全部自学,老鸟勿喷)
       我做的那种用户系统就属于后者,我叫他阿海网络用户管理系统。只需话30秒注册一个管理员账号就可以拥有一个自己的后台。然后花10分钟阅读以下API文档就可以上手了。
        他的原理很简单,首先你要明确表结构。第一张表是管理员用户表,他记录了每个注册的管理员的详细信息。第二张表是管理员配置表(你也可以吧前面这两张表写成一张)不过我喜欢分开来写,有助于后期的更新以及扩展。
       第三章表则是管理员的下线用户,也就是普通用户表,他记录了这些个用户的用户名密码,管理员账户(上属用户)积分或者使用期限,是否冻结等信息至于我的写的可就多了,都是后期慢慢加上去的字段,我这个系统后去又加了签到、点数充值、授权时间充值、留言板等等一系列的
       第四列表一直到最后列表,则是管理员的充值卡(或者说是授权码)列表,任何一个注册本系统的管理员,都可以在后台通过图形界面像这个列表添加充值卡,这里每个列表是一种充值卡的类型,比如我第四列表是充值时间的卡密列表,那么第五列表就是充值点数的卡密列表,第六张表可以是一次性永久授权用户的授权码列表。
这样做差不多就大功告成了,接下来,写前台吧还有API吧!



      
API写的方式非常简单,自己不用判断什么,只需向服务器发送请求,所有判断的过程全部放在了服务器端,只管着接受服务器返回来的数据就行了!这样也防止了部分本地破J的可能性。如果有闲情雅致的话,可以在API模块中写一下健壮性判断(尽管在服务器里谢过了)这样的话,假如用户提交不正确的请求,可以在本地的健壮性判断中拦截下来不会发给服务器,会减少很多无用的请求。千万不要小看这一个本地判断,他可以给你的服务器减少多一半的压力!我曾经统计过一次,在API中没有健壮性判断的时候,服务器每两条请求中就有一条是无用的数据这一点儿也不假。处理这些东西会给服务器增加很多压力的
回复 支持 反对

使用道具 举报

结帖率:80% (4/5)
 楼主| 发表于 2015-1-30 00:03:29 | 显示全部楼层   北京市北京市
  例如:user.321aiyi.com/login.php?username=abc&password=123
    以上这种方式比较常见,但是应用较为麻烦,一般的时候通常是作为一个参考而已,实用性并不大(试问这种网络验证的web程序大家都可以下载使用,包括他的原理,构造都了如指掌,那么用它真的安全吗?)
       我们假设一下,例如我们下载了同样的web程序,你那他上传到了你的web空间拿来用,并且只有注册或者充值的用户才可以用你的程序,尽管软件本身加密的非常好了,但是假如我也下载了一个和你一样的网络验证系统,然后上传到自己的服务器,或者干脆就在本地开一个临时的web服务,然后通过hosts将你的验证地址指向我的地址呢?那么你所做的一切就白费了,我只需要自己的后台中设置一个123的用户,输入123就可以随意的使用你这个程序。

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表