欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

皕应图形验证码HCaptcha与短信验证码HSMSCaptcha实现

程序员文章站 2024-04-06 15:53:25
...

最近做项目时,用到了皕应平台http://www.hinsite.com,感觉还不错给大家说说我的体会和经验:

以前习惯在开发项目的时候在网上搜些验证码的代码或是类库实现上去就行了,其实也没考虑太多的安全性等方面的问题了。好像有了验证码在那里当门神就不怕,最近做了一个项目后改变了我的想法。最近我们团队做了个少儿的投票评比,刚开始随便搞了个验证码上去,结果上线的时候才发现被狂刷,这个后果就不用再详细说了。一直更好了非常多的验证码总是不行,后来在腾讯的同学给我推荐了用皕应HCaptcha的试试,才解决了问题,后来喜欢上了皕应这个平台,也在项目中用了他们的短信验证码服务,所以现在是有点熟了。

皕应现在有两个服务HCaptcha(图片验证码)和HSMSCaptcha(短信验证码) 两个服务;

1.HCaptcha图片验证码

皕应的验证码有非常多的样式,当发现有不安全的验证样式时他们随时会更换或是撤销某验证码样式,这大大让我们放心。再也不用担心验证码破解后,自己折腾了,把这个安全性交个这个平台来搞定。

1)到皕应的官网注册用户

注册地址 http://www.hinsite.com 下面你懂的...

2)创建相应的项目

这个项目可能有让人误解的地方以为只有应用程序才叫项目,其实这里的项目包括网站和各种应用程序的意思。这里只需要填写一些网站的基本资料。

3)创建HCaptcha

到HCaptcha创建对应项目的验证码,在创建验证码时,可以按自己的需要去设置验证码的样式,比如模糊程度,字数,是否要使用中文验证码等。

4)选择验证码展示模式

进入不同模式可以对样式进行设置,选择组件样式颜色等。可以不用急于设置,这个平台好处是组件的控制完全在平台,嵌入了页面后,以后希望更改样式只需要在平台中更改。

5)验证码显示
选择对应样式后,每个样式下有验证码显示的代码,形式如:其中k=每个项目不同。复制该代码后放到希望显示验证码的地方。

6)下载皕应的HDK
解压后整个hdk目录放到站点根目录下,如果您对hdk比较熟的话,可以删除其他一些不必要的文件,比如这个项目是php的,可以只保留hdk/php 这个目录,其他的可以删除,php/
example 目录也可以删除。其他语言方式类似。

7)验证码校验
复制项目对应语言的代码,放到需要校验的页面。

这样就实现了图片验证码的显示与校验。


2. HSMSCaptcha短信验证码

皕应的短信验证码,让我们开发者不需要寻找短信端口,不用维护短信验证码内容等麻烦的事情,几乎让我们在5分钟内就可以实现软件或是网站支持短信验证码的功能。

1)到皕应的官网注册用户

注册地址 http://www.hinsite.com 下面你懂的...

2)创建相应的项目

这个项目可能有让人误解的地方以为只有应用程序才叫项目,其实这里的项目包括网站和各种应用程序的意思。这里只需要填写一些网站的基本资料。

3)创建HSMSCaptcha

到HSMSCaptcha创建对应项目的验证码,可以对需要的验证码做设置。

4)选择验证码展示模式

进入不同模式可以对样式进行设置,选择组件样式颜色等。可以不用急于设置,这个平台好处是组件的控制完全在平台,嵌入了页面后,以后希望更改样式只需要在平台中更改。

5)短信验证码组件显示
选择对应样式后,每个样式下有短信验证码显示的代码,形式如:其中k=每个项目不同。复制该代码后放到希望显示短信验证码的地方。这里需要设置短信验证码发送地址,该地址是如下7)所创建。

6)下载皕应的HDK
解压后整个hdk目录放到站点根目录下,如果您对hdk比较熟的话,可以删除其他一些不必要的文件,比如这个项目是php的,可以只保留hdk/php 这个目录,其他的可以删除,php/
example 目录也可以删除。其他语言方式类似。

7)短信验证码发送
复制项目对应语言的代码,一般情况下是建立一个独立的页面文件,将代码复制到该文件中。这里要注意该文件应与组件展示页面相同的域下比如:组件显示页面是 http://www.handinhand.cn/signup.php ,该发送页面地址需要是如: http://www.handinhand.cn/send_example.php ,如果这两个地址的域不同,则会导致发生失败的情况。

8)短信验证码校验
复制项目对应语言的代码,放到需要校验的页面。

这样就实现了短信验证码的显示,发送,校验。

复制代码
  1. include("hdk/php/include/hcaptcha.inc.php");
  2. $_HCaptchaPrivateKey = "";
  3. $HCaptchaObj = new HCaptcha($_HCaptchaVerifyURL, $_HCaptchaPrivateKey);$HCaptchaObj->Verify(isset($_POST['HCaptchaRemoteAddr']) ? $_POST['HCaptchaRemoteAddr'] : $_SERVER['REMOTE_ADDR'], isset($_POST['HCaptchaInput']) ? $_POST['HCaptchaInput'] : "", isset($_POST['HCaptchaSid'])? $_POST['HCaptchaSid'] : "");
复制代码