WebService身份验证

WebService访问API是公开的,知道其URL者均可以研究与调用。那么,在只允许注册用户的WebService应用中,如何确保API访问和通信的安全性呢?本文所指的访问与通信安全性包括:

  • 访问安全性:当前访问者是注册合法用户
  • 通信安全性:客户端与服务器之间的消息即使被第三方窃取也不能解密

本文安全的基本思路是:

  • 注册用户登录时使用RSA加密
  • Web API调用参数使用DES加密(速度快)
  • Web API调用中包含一个身份票据Ticket
  • Web服务器保存当前Ticket的Session,包括:Ticket、DES加密矢量、注册用户基本信息

1 WebService身份验证

确保注册用户的访问安全,需要如下步骤:1)产生一个当前客户端机器票据(Ticket);2)请求服务器RSA公钥(RSAPublicKey);3)使用RSA加密登录口令及发布DES加密矢量(DESCipherVector)。

1.1  产生客户端机器票据Ticket

一般而言,可以由客户端机器根据自己的MAC、CPU序列号等唯一标识产生一个本机器的Ticket字符串票据,其目的是:唯一标识当前客户端,防止其它机器模仿本客户端行为。

1.2  请求服务器公钥RSAPublicKey

客户端携带票据Ticket向服务器请求RSA公钥RSAPublicKey。在服务器端,一般采取如下策略产生RSA加密钥匙:

  • Application_Start时产生一个1024或更长的RSA加密钥匙对。如果服务器需要长久运行,那么Application_Start产生的RSA可能被破解,替代方案是在当前Session_Start时产生RSA加密钥匙对
  • 保存当前票据对应的客户帐号对象,即:Session[Ticket] = AccountObject,在确认身份后在填写AccountObject具体内容:帐号、RSA加密钥匙对、DES加密矢量

完成上述步骤后,服务器将RSAPublicKey传回给客户端。

1.3  加密登录口令及DES加密矢量

客 户端获得RSAPulbicKey后,产生自己的DES加密矢量DESCipherVector(至少要8位及以上,该加密矢量用于以后的常规通信消息加 密,因为其速度比RSA快)。接着,客户端使用RSAPublicKey加密登录帐号、口令及DESCipherVector,连同Ticket,发送到 服务器并请求身份验证。登录API格式如下:

public void Login(string Ticket, string cipherLongID, string cipherPassword);

如果验证成功,服务器将当前帐号信息、RSA钥匙、DESCipherVector等保存到会话Session[Ticket]中。

2 WebService通信安全性


2.1  加密WebService API参数

身份确认后,在客户端调用的WebService API中,必须包括参数Ticket,其它参数则均使用DESCipherVector加密。服务器端返回的消息也同样处理。例如,提交一个修改email的函数定义为:

public void ModifyEmail(string Ticket, string cipherEmai);

2.2  客户端解密消息

客户端接收到服务器返回消息后,先做解密操作,如果成功则进入下步处理。否则抛出加密信息异常。

2.3  服务器端解密消息

服务器接收到客户提交的API请求后,首先验证Ticket的合法性,即查找Session中是否有该票据以验证客户身份。然后,解密调用参数。如果成功则进入下不操作,否则返回操作异常消息给客户端。

需要指出,如果第三方截获全部会话消息,并保留其Ticket,此时服务器端仍然认可这个第三方消息。但是,第三方不能浏览,也不能修改调用API的参数内容,此时解密参数时将抛出异常。

上面探讨了一个基于加密的WebService访问与通信安全方法,即使第三方获取消息,不能查看原始内容,也不能修改内容,保证了WebService API的安全性。

Panda(熊猫最新研究)

网站 外链

一 .最基本的一步 是怎么把链接发出去
一般发链接之前我会给你2个东西 一是网站的地址 这里举例为 http://www.yourdomain.com 一个是关键词 这里举例为 keywords
有些网站除了在名字中加链接 和一些比较不常见的形式 一般我们都会自己制作一些代码来发链接

有以下几种形式
Html>(首页链接和博客等群建链接使用)
keywords
除了html形式用于静态或者动态页面等 常见的还有ubb形式 用于论坛签名 帖子等;word文本形式用于spaces.live.com等
Ubb> (php类博客、论坛等群建链接使用)
[url=http://www.yourdomain.com]keywords[/url]
Wiki>(维基百科类网站等群建链接使用)
[url=http://www.yourdomain.com keywords]
这里需要注意1点 文本链接的规范形式为:
keywords
但很多平台如果添加了“”会无法正常显示 也就是非w3c标准的链接是有效的
所以在进行链接资源建设和积累的时候 可以多尝试各种格式的代码 找出适用的。
一般在制作代码的时候我们是不仅仅制作一个关键词的链接来发送的 这样的链接一是效果不好 二是比较容易被删 我们通常是把链接夹杂在一段话中 例如
i love seowhy very much.
结合不同的程序和网站 我们分别选择html ubb wiki等代码进行链接建设
明白以上几点 以后我就不会在为你制作代码了 只会给你网站地址和对应的关键词 然后你需要自己来制作代码
一般情况下你需要事先准备好所有的代码各一份,找到网站时才可以用不同的代码去测试,看看哪种可用
例如我给你的关键词是 seo 地址是 http://www.seowhy.com 你需要很快的 制作出相应的所有代码 如下4份代码
seo
[url=http://www.seowhy.com]seo[/url]
seo
[url=http://www.seowhy.com seo]

二.怎么找到网站
找网站说难不难 说简单不简单 靠经验是一方面 另一方面你要能抓的住细微的方面 也许可以一次性挖掘出几万个可以使用的网站出来
第一种方法 是跟着别人发
在搜索引擎查询别人的反链 命令是 link:
假设对方的网站地址是 www.a.com 这个命令就是
也就是在 link:www.a.com
可以在 www.yahoo.com 和 www.google.com 查询对方的反链
如果你用的是中国谷歌 记得点左下的 Google.com in English 将google转化为英文版的
还有个工具是查外链的 结果是和在 www.yahoo.com 查询的结果是一样的 只是将查到的网站更加清晰的列表出来
工具地址是:http://www.online- utility.org/webmaster/backlink_domain_analyzer.jsp
我将这种方法查找反链的难点和注意点归结如下
比较难的就是找到网站,找到网站了我们才能查他的外链,因为可以知道,找到一个好的网站,查这个网站的外链,也许可以很轻松的获得很多可以发外链的地址。怎么来找到好的网站来查他的外链呢?
1.在我们发外链的过程中,往往可以看到很多其他的网站也在某些网站上发外链,可以知道,这些网站不可能只在一个网站上发外链,他们还会找其他的地方去发,看到这样的网站,我们就可以去查一下这些网站的外链,也许可以挖掘到很多。
2.通过搜索引擎搜索来获得一些网站地址然后查他们的外链,我们可以知道,很多关键词排名在搜索引擎前面的都是靠发垃圾外链把排名冲上去的,我们搜索这些词汇然后查排名前面的一些网站的外链,往往也可以获得很多。
比如这些词: replica handbags , replica watches , ugg boots , wow gold , jewelry stores 等等 我不可能全部列表出来 这个还是要靠你自己来挖掘 获得这些词汇的方法也很简单 因为你在发外链的过程中可以看到很多网站发的外链文字是某个词汇 这些往往就是他们在竞争的关键词。
这里要注意的是 英文有很多种可能 一个关键词也许就够你搜索出很多网站了 因为当你知道 有 tiffany 这个关键词 你就可以搜索 tiffany jewelry , tiffany jewellery ,tiffany co 等等 这些相关的词汇搜索引擎都会在搜索结果页面下方列出来的。同样最简单的,你搜索 replica handbags 和 replica handbag 的结果是不同的。

还有另外一种找到发外链网站的方法,就是上搜索引擎 搜索
可以知道,我们发外链的最主要目的就是让搜索引擎看的到我们的外链,如果搜索引擎看不到的外链对我来说没有任何意义可言。因此,我们要发外链的地址都是被搜索引擎收录了的,也可以知道,这些网站既然在搜索引擎的数据库中,就可以被我们搜索出来,我们不能搜索出来,只能证明我们没有找到合适的关键词。
所以从搜索引擎找出网站,经验是最重要的,其中主要是要靠自己去发掘搜索的关键词,我也许能给出一些关键词,但并不是所有,我来说下我是怎么在搜索引擎挖掘网站的。
我们先来学习第一个命令 inurl 意思就是搜索在网站地址中出现关键词的 比如搜索所有网站地址中出现了 .com/forum 的网站 命令就是
inurl:.com/forum
因为很多论坛的地址都是 /forum 所以我们上面所说的命令 就等于一次性挖掘出来几万个 .com 域名的论坛
/forum 结尾的论坛是比较常见的 我们也可以应用到其他方面。 比如有几次,我找留言的网站,找了很多个以后,发现很多网站地址有个共同的规律,他们的地址中间都包含了 /comment/reply/
于是 我马上到谷歌搜索 inurl:.com/comment/reply/ 果然 一次发现了很多可以发外链的网站
这主要是要多观察 其实很多可以发外链的网站地址间会有共同点,如果你发现了共同点,马上上谷歌搜索,也许会有意外的发现。当然,上面说的.com 也可以改成 .net .org 等等。
不要那么死板,很多网站细微发现都是有规律的,也许他们每个文章页面的地址都完全不同,但是可能他们的目录页地址是有规律的,可能到了他们的每个注册页面,都是有规律的。

然后学习下一个命令 allintext 意思就是在网页的正文中出现关键词 比如 搜索所有网站正文中出现 add a comment 字眼 的命令就是
allintext:add a comment
很多网页中是有规律的,他们的内容也许每个页面都不同,但是有些部分是网上很多网站一样的,就好像中文的留言框的上面总会写上 ”留下你的评论” ”请回复” 这样的字眼 add a comment 也是一个这样的字眼 意思就是增加一个评论。当你看到很多网站的页面上都有这样有规律的相同的字眼的时候,就可以上网搜一下,也许可以挖掘出很多网站。
我还收集了一些 通用的 回复的字眼 如 add comment add your comment Leave a Reply 很多网站内容中都会有规律。主要要靠不断的观察来总结
用搜索引擎找外链的时候不要那么死板 进入谷歌的高级搜索看一下

http://www.google.cn/advanced_search?hl=zh-CN

可以看到搜索的命令非常多 我上面所说的只是9牛一毛 我只能讲一个开始 深入的挖掘搜索命令来找出网站 还是要靠自己多思考。
其实就上面说的就是2点 一是找出一些网站的规律 二是利用这些规律上搜索引擎搜索 把一类的网站全部搜索出来
找出规律需要细心和耐心 也靠一点运气。任何方面的规律都是可以的,地址出现同样的字眼,网站正文中出现同样的板块。 搜索出来就简单的多 , 用熟了各种搜索引擎命令以后这些都不是问题。

三.怎么判断找到网站的好坏,怎么判断该不该在上面发
首先是发出去的连接 有2种样式,一种是文字带链接,一种是直接的连接 如下2种
SeoWhy

http://www.seowhy.com

很多网站不能发文字带链接 这样的网站理论来说是不要的
其次是页面的因素
首先是 PR (查看PR的基本概念) 你首先要下载一个谷歌的工具条,这样才能看到页面的PR值
PR值越高的页面越好,如果在一个网站上面发,看下这个网站首页的PR值就好了。
其次是 nofollow标签 (查看nofollow标签的概念) 你要下一个火狐的插件来查看你所发的链接是否是nofollow标签
先要安装火狐浏览器最新版 下载地址 http://www.mozillaonline.com/
然后下载nofollow标签插件 https://addons.mozilla.org/zh- CN/firefox/addon/5687
安装好后重新启动浏览器 然后打开你发外链的页面 在页面上点右键选择 nofollow 就可以看到链接都显示成了红色和蓝色2种颜色
红色的链接就是 带有nofollow标签的链接 理论上来说这样的链接是不要的

第三是一个页面上的链接数量
一个页面上如果上面的链接太多了的话,这样的页面是不能在上面发的,怎么来衡量这个页面垃圾不垃圾,不能只看留言的多少。
比如一个页面上有100条留言,如果每个留言只带了一条链接,实际上只有100个链接。而有的页面上只有2条留言,2条留言全是垃圾链接,每条留言带了几百个链接,有几百条。很显然有100条留言的反而是我们需要发的。

最后一个因素,因为是英文网站,所以找网站的时候是不需要英文以外其他语言格式的网站的,比如我们就不会去找中文站发外链。

———————————————————————————————————————————————— -

以上的概念都是死的,是可以变通的

假设一个页面上留言的人很多,但是PR也非常高,这样的页面显然是我们需要的

一个页面虽然是nofollow标签的,但是PR很高,留言的人又少,显然也是我们需要的!

这些抓取博客的。先去抓抓学一学。在观察不同网址后缀: 查共同点。在去进步抓取。
Inurl:.edu “powered by wordpress” “leave a comment”
Inurl:.gov “powered by wordpress”
Inurl:.ac.uk “powered by wordpress”
Inurl:.edu “Powered by BlogEngine.NET 1.4.5.0″
Inurl:.gov “”Powered by BlogEngine.NET 1.4.5.0″
Inurl:.ac.uk “Powered by BlogEngine.NET 1.4.5.0″
“Powered by PHPbb”
“Powered by vBulletin”
“Powered by SMF”
powered by wordpress your keyword
powered by wordpress intitle:your keyword
powered by wordpress inurl:your keyword
If you have a TypeKey or TypePad account your keyword
site:blogspot.com your keyword
powered by wordpress your keyword -comments are closed
site:.edu inurl:wp-login.php +blog
site:.gov inurl:wp-login.php +blog
site:.edu “your keyword”
site:.gov “your keyword” – “you must be logged in” – “comments are closed”
site:.edu “no comments” +blogroll – “posting closed” – “you must be logged in” – “comments are closed”
site:.gov “no comments” +blogroll – “posting closed” – “you must be logged in” – “comments are closed”
site:propeller.com/member keyword
site:.com inurl:blog “post a comment” – “comments closed” – “you must be logged in” “ADD YOUR KEYWORD”
site: .org inurl:blog “post a comment” -”comments closed” -”you must be logged in” “ADD YOUR KEYWORD”
site: .gov inurl:blog “post a comment” -”comments closed” -”you must be logged in” “ADD YOUR KEYWORD”
site: .com “powered by expressionengine” “ADD YOUR KEYWORD”
site: .org “powered by expressionengine” “ADD YOUR KEYWORD”
site: .edu “powered by expressionengine” “ADD YOUR KEYWORD”
site: .gov “powered by expressionengine” “ADD YOUR KEYWORD”
site: .com “Powered by BlogEngine.NET” inurl:blog “post a comment” -”comments closed” -”you must be logged in” “ADD YOUR KEYWORD”
site: .ORG “Powered by BlogEngine.NET” inurl:blog “post a comment” -”comments closed” -”you must be logged in” “ADD YOUR KEYWORD”
site: .edu “Powered by BlogEngine.NET” inurl:blog “post a comment” -”comments closed” -”you must be logged in” “ADD YOUR KEYWORD”
site: .gov “Powered by BlogEngine.NET” inurl:blog “post a comment” -”comments closed” -”you must be logged in” “ADD YOUR KEYWORD”
“powered by wordpress” “leave a comment”
Inurl:.edu “Powered by wordpress”
Inurl:.gov “Powered by WordPress”
Inurl:.ac.uk “Powered by wordpress”
Inurl:.edu “Powered by BlogEngine.NET 1.4.5.0?
Inurl:.gov “”Powered by BlogEngine.NET 1.4.5.0?
Inurl:.ac.uk “Powered by BlogEngine.NET 1.4.5.0?
“Powered by BlogEngine”
“Powered by Blogsmith”
“powered by Typepad”
“powered by scoop”
* site:.edu inurl:wp-login.php +blog
* site:.gov inurl:wp-login.php +blog
* site:.edu “your keyword”
* site:.gov “your keyword” -”you must be logged in” -”comments are closed”
* site:.edu “no comments” +blogroll -”posting closed” -”you must be logged in” -”comments are closed”
* site:.gov “no comments” +blogroll -”posting closed” -”you must be logged in” -”comments are closed”
* site:.edu “powered by expressionengine” “ADD YOUR KEYWORD”
* site:.gov “powered by expressionengine” “ADD YOUR KEYWORD”
* site:.com “powered by expressionengine” “ADD YOUR KEYWORD”
* site:.org “powered by expressionengine” “ADD YOUR KEYWORD”
* site:.edu “Powered by BlogEngine.NET”site:.edu inurl:blog “post a comment” -”comments closed” -”you must be logged in” “ADD YOUR KEYWORD”
* site:.gov “Powered by BlogEngine.NET”site:.edu inurl:blog “post a comment” -”comments closed” -”you must be logged in” “ADD YOUR KEYWORD”
* site:.com “Powered by BlogEngine.NET”site:.edu inurl:blog “post a comment” -”comments closed” -”you must be logged in” “ADD YOUR KEYWORD”
* site:.org “Powered by BlogEngine.NET”site:.edu inurl:blog “post a comment” -”comments closed” -”you must be logged in” “ADD YOUR KEYWORD”

Pinterest分享模式价值浅析

一、Pinterest简介

Pinterest,Pin(图钉)+Interest(兴趣),把自己感兴趣的东西用图钉钉在钉板(PinBoard)上。美国的一家创办于2011年的正迅速成长为受世界瞩目的图片视觉社交网站。 Pinterest页面底端自动加载无需翻页功能,让用户不断发现新图片。为用户提供在线收藏和分享Pinterest视觉艺术图片的服务。

该项目的创意来自于创始人 Ben Silbermann 为他的女朋友寻找订婚戒指之时。他发现了很多还算中意的戒指,但又需要反复比较,于是他就开发了 Pinterest,把它们随手贴在同一个页面上。(Via)

目前Pinterest也支持视频的分享,之前Pinterest获得了最新一轮2000万美金的投资,据传估值达到了2亿美金,国内类Pinterest服务又成为了一个热点,今天和大家分享一个对于Pinterest的理解和想法。欢迎大家通过微博 @web20share 和我们分享您的观点。

二、Pinterest功能介绍

先介绍几个Pinterest里面的核心功能吧:
■Pin:字面意思是图钉,你可以理解为把一张图片(或视频)贴到一个板(Board)上,直白来理解就是收藏一个图片(或视频),每一个分享的图片的展示方式如下图,左侧是这个Borad上的图片(或视频)缩略图,右侧是图片或视频详情;
■Repin:你看到别人分享的一个Pin,觉得不错,可以拿来贴在自己的板子(Board)上,类似于转发的意思,你Repin之后,专注你的人,或者关注你Board的人便可以看到这个图片(或视频)
■Like:自己喜欢的图片或视频,类似于私藏,个人可见;
■Borad:上面提到的板子,可以理解为图片(或视频)的组,就是一个板子(Borad)上可以贴很多张照片(或视频)

所以对于一个用户而言,其可以做几个操作:一是Pin,二是Repin,三是关注,这里面用户可以关注人,也可以关注用户的某个Board,用户通过Borad来整理自己感兴趣的内容,其他用户通过Repin的方式传播自己感兴趣的内容,并且重新组织到自己的Board。

用户可以创建共享的Borad和其他朋友一起来协作将内容收藏到一个Board。

另外Pinterest有一个公共的类别,Pinterest会提示用户将自己的Board添加到其公共类别以便于其他人通过分类浏览这些内容。

三、Pinterest模式分析

1.人和信息的关系:人-Board-图片,Board其实就是兴趣,只不过兴趣的载体是图片。用户可以关注人、关注一个人默认等于关注这个人所有的Board。其实是Pinteret将人定义为一个兴趣组(这些兴趣组体现为Board),Pinterest关注的最小的维度其实是Board。

2.展示方式:大家熟知的瀑布流,这种方式真是很好的解决的图片信息的展示问题,对于各种大小的屏幕自动适应的方式,有人称之为将手机上的展示方式直接移植到Web上,相信这种展示方式会被很多网站所借鉴。

3.信息的有序组织:每个人将图片整理至Board的过程其实是一种将信息有序化的过程,这种过程直接在传播中完成,这种由用户重新组织的兴趣内容组将很有价值,也会吸引更多人的关注。Pinterest提供的协作功能也允许多个用户来协作一个Borad的内容。

4.页面组织可以方便快速发现兴趣,任何一个图片单页旁边就是这个图片所在的Board(兴趣),可以关注,将喜欢的图放到自己的Board,所以用户可以通过图片–>Board—>Repin,进行快速的发现兴趣,传播兴趣,从这点的角度,Pintertest处理兴趣的方式比Tumblr处理兴趣的方式更好!

四、商业模式

目前大家普遍比较认同的方式就是和电子商务相结合的方式,不过在我看来,只要通过一种方式能够逐渐沉淀用户的兴趣,这种商业价值可能会有多种的回报方式。比如基于兴趣的广告。

五、国内类Pinterest网站
■拼范网:http://www.pinfun.com/
■迷尚网:http://www.mishang.com/
■凡客达人:http://star.vancl.com/
■美丽说:http://www.meilishuo.com/
■蘑菇街:http://www.mogujie.com
■淘宝哇哦:http://wow.taobao.com
■IDsoo:http://idsoo.com/
■Topit:http://topit.me/
■Mark之:http://markzhi.com/
■布兜:http://www.budoou.com/
■堆糖:http://www.duitang.com/
■花瓣:http://huaban.com/
■码图网:http://www.markpic.com/
■新鲜网:http://www.xinxian.com/
■易惊喜:http://www.ejingxi.com/

好吧,每次介绍国外一个颇受关注的模式,总会列出国内的列表,当然上面只是个不完全列表,实际应该更多,并且最近应该也还会有不少会出来。大家看了上面的介绍会发现其实有一些只是形式象而已(当然也有一些诚心拷贝),大家都在学习瀑布流的展示方式,当然借鉴模式去发现自己的方式也是可以的,但是千万不要在模仿中迷失了自己。

六、问题与挑战

国内目前类似的服务也越来越多了,除了上面的信息关注机制和展示方式以外,如果这些只是表面的形式,那这些Pinterest服务谁能胜出比拼的应该是什么呢?个人列出一些觉得比较重要的点:

1.如何吸引核心用户群(UGC用户)

本质上还是一个UGC的网站,这种形式固然可以吸引用户来,但是从站外贡献内容的还是极少的比例,如何建立这种分享驱动力并且构建合适的激励机制的需要考虑的?

2.分享图片、发现图片本身不是需求,用户想要得到什么?

个人觉得还是如何解决后续用户的需求的问题,除了发现图片和视频,用户后续的需求是什么需要去考虑。

3.商业模式

如何将用户的需求和商业模式很好的结合。国内最成功的应该是美丽说 但是其实不是标准的pinterst形式,其更关注其用户群的需求,展示方式其实其中的一部分而已,通过满足用户群的需求来吸引这部分用户才是核心,那是否以为着需要更好的关注自己的用户群呢?

七、小结

Pinterest的出现确实给我们带来了很多有价值的启发,比如对于图片信息的展示,未来会是个读图时代,因为图片能够承载的信息更多,但是纯粹的展示方式还不能够支撑一种商业模式,还是需要专心思考,用户是谁,除了展示效果以外,为用户提供的价值是什么,当然也要考虑可能的实现价值回报的方式。

Panda熊猫算法一览图