精华内容
下载资源
问答
  • 服务器验证——token

    千次阅读 2018-11-27 18:05:52
    在以前,我们常用Cookie+Session来完成服务器验证。 具体过程为在客户端提交表单登录,服务器端通过验证之后,生成一个Session对象,存放用户登录信息,并将SessionID存放到Cookie中,通过Http响应发送到客户端。...

    我们知道,http协议是无状态的,所以每次访问服务器的时候,都需要告诉服务器访问者的身份。在以前,我们常用Cookie+Session来完成服务器端验证。

    具体过程为在客户端提交表单登录,服务器端通过验证之后,生成一个Session对象,存放用户登录信息,并将SessionID存放到Cookie中,通过Http响应发送到客户端。而客户端会在一定时间内保存cookie,此后的访问请求都会在请求头中带上Cookie的值,用于让服务器端验证,从而达到一次登录,后续不用验证的目的。

    Session的缺点:

    • 当服务器访问量增加的时候,会存在很多Session,如果没有设置超时或者销毁的话,很容易造成服务器崩溃等状况。
    • 当服务端为集群或者分布式的时候,用户登陆其中一台服务器,会将session保存到该服务器的内存中,但是当用户的访问到其他服务器时,会无法访问,通常采用缓存一致性技术来保证可以共享,或者采用第三方缓存来保存session,不方便。

    先来看看token的介绍:

    Json Web Token:简称JWT,俗称token,它是一个开放标准(RFC 7519),它定义了一种紧凑的、自包含的方式,用于网络应用环境间传递声明而执行的一种基于JSON的开放标准。JWT传递的信息可以被验证和信任,因为它是数字签名的。JWTs可以使用一个秘密(使用HMAC算法)或使用RSA或ECDSA的公钥/私钥对来签名。

    JWT 的三个部分依次如下:

    Header(头部) Payload(负载) Signature(签名),写成一行,就是下面的样子。

    Header.Payload.Signature

    下面依次介绍这三个部分。

    1. Header  头部

    Header 部分是一个 JSON 对象,描述 JWT 的元数据,通常是下面的样子。

    { "alg": "HS256", "typ": "JWT" }

    上面代码中,alg属性表示签名的算法(algorithm),默认是 HMAC SHA256(写成 HS256);typ属性表示这个令牌(token)的类型(type),JWT 令牌统一写为JWT。

    最后,将上面的 JSON 对象使用 Base64URL 算法转成字符串。

    2. Payload  有效载荷

    Payload 部分也是一个 JSON 对象,用来存放实际需要传递的数据。JWT 规定了7个官方字段,供选用。

    iss (issuer):签发人

    exp (expiration time):过期时间

    sub (subject):主题

    aud (audience):受众

    nbf (Not Before):生效时间

    iat (Issued At):签发时间

    jti (JWT ID):编号

    除了官方字段,你还可以在这个部分定义私有字段,下面就是一个例子。

    { "sub": "1234567890", "name": "sssssss", "admin": true }

    注意,JWT 默认是不加密的,任何人都可以读到,所以不要把秘密信息放在这个部分。

    这个 JSON 对象也要使用 Base64URL 算法转成字符串。

    3. Signature   签名

    jwt的第三部分是一个签证信息,这个签证信息由三部分组成:

    header (base64后的)

    payload (base64后的)

    secret(这个是服务器端自定义的一个秘钥)

    这个部分需要base64加密后的header和base64加密后的payload使用连接组成的字符串,以及秘钥secret构成一个组合,然后通过header中声明的加密方式对这个组合进行加密,然后就构成了jwt的第三部分。

    最后我们会得到完整的JWT:字符串1.字符串2.字符串3;

    再来看看token是怎么做的:

    1、客户端通过用户名和密码登录服务器

    2、服务端对客户端身份进行验证;

    3、服务端对该用户生成Token,返回给客户端;

    4、客户端将Token保存到本地浏览器,一般保存到cookie中;

    5、客户端发起请求,需要携带该Token;

    6、服务端收到请求后,首先验证Token,之后返回数据。

    服务端不需要保存Token,只需要对Token中携带的信息进行验证即可。无论客户端访问后台的那台服务器,只要可以通过用户信息的验证即可。

    本人碰到的常用做法是用户登录验证通过后,将用户的uuid保存在JWT的有效载荷中并返回,之后的请求只要通过解析token获得用户的uuid,就可以对用户进行之后的操作。

    防干扰:生成token的过程中,ua的充作干扰码。没有相同的ua,就无法解析生成的token字符串。如果客户端是混合开发的模式,生成token和使用token的代理可能不同(比如一个是h5,一个是原生),ua就会不同,token就无法成功的使用。

    防过期(刷新):Token管理者负责根据用户的数据生成token和摘要,摘要用来给APP端刷新token用

     

     

     

    展开全文
  • facebook 服务器验证

    千次阅读 2016-12-29 13:58:53
    facebook的第三方接入,真是蛋疼。 哪位大牛完成 facebook的第三方接入,分享下。。 特别是服务器验证,文档真是恶心
    facebook的第三方接入,真是蛋疼。
    

    哪位大牛完成 facebook的第三方接入,分享下。。

    特别是服务器端验证,文档真是恶心
    展开全文
  • 如果交易完成后,向自己的服务器进行二次验证服务器对用户增值操作)的时候,客服端突然断网了怎么办啊,大家是怎么解决的,有什么最好的解决办法吗。 顺便再问下,服务器代码使用的是CURL方式向苹果服务器进行...
  • IOS内购支付服务器验证模式

    万次阅读 2015-07-16 10:20:04
    服务器模式的流程 结论 苹果反馈的状态码IOS 内购支付两种模式: 内置模式 服务器模式 内置模式的流程: app从app store 获取产品信息 用户选择需要购买的产品 app发送支付请求到app store app store 处理支付请求,...

    IOS 内购支付两种模式:

    • 内置模式

    • 服务器模式

    内置模式的流程:

    1. app从app store 获取产品信息

    2. 用户选择需要购买的产品

    3. app发送支付请求到app store

    4. app store 处理支付请求,并返回transaction信息

    5. app将购买的内容展示给用户

    服务器模式的流程:

    1. app从服务器获取产品标识列表

    2. app从app store 获取产品信息

    3. 用户选择需要购买的产品

    4. app 发送 支付请求到app store

    5. app store 处理支付请求,返回transaction信息

    6. app 将transaction receipt 发送到服务器

    7. 服务器收到收据后发送到app stroe验证收据的有效性

    8. app store 返回收据的验证结果

    9. 根据app store 返回的结果决定用户是否购买成功

    上述两种模式的不同之处主要在于:交易的收据验证,内建模式没有专门去验证交易收据,而服务器模式会使用独立的服务器去验证交易收据。内建模式简单快捷,但容易被破解。服务器模式流程相对复杂,但相对安全。


    开发之初,苹果方就很负责的告知:我们的服务器不稳定。真正开发之后,发现苹果方果然是很负责的,不仅是不稳定,而且足够慢。app store server验证一个收据需要3-6s时间。

    1. 用户能否忍受3-6s的等待时间

    2. 如果app store server 宕机,如何确保成功付费的用户能够得到正常服务。

    对于第一个问题,我们有理由相信用户完全无法忍受,所以采用异步验证的方式,服务器收到客户端的请求后,就将请求放到MCQ中去处理。

    对于第二个问题,由于苹果人员很负责人的告知:我们的服务器不稳定,所以不排除收据验证超时的情况。对于验证超时的收据,保存到数据库中并标记为验证超时,定时任务每隔一定的时间去app store验证,确保能够获取收据的验证结果。

    在开发过程中,需要测试应用是否能够正常的进行支付,但是又不能进行实际的支付,因此需要使用苹果提供的sandbox Store测试。Store Kit不能在iOS模拟器中使用,测试Store必须在真机上进行。

    在sandbox中验证receipt:
    https://sandbox.itunes.apple.com/verifyReceipt

    在生产环境中验证receipt:
    https://buy.itunes.apple.com/verifyReceipt

    在实际开发过程中,服务器端通过issandbox字段标识客户端传递的收据是沙盒环境中的收据还是生产环境中的收据。在提交苹果审核前,沙盒测试均无问题。提交苹果审核后,被告知购买失败,审核未通过。通过查询日志发现,客户端发送的交易收据为沙盒收据,但是issandbox字段却标识为生产环境。

    结论:

    苹果审核app时,仍然在沙盒环境下测试。但是客户端同事在app提交苹果审核时,将issandbox字段写死,设置为生产环境。这样就导致沙盒收据发送到https://buy.itunes.apple.com/verifyReceipt去验证。

    那么如何自动的识别收据是否是sandbox receipt呢?

    识别沙盒环境下收据的方法有两种:

    1.根据收据字段 environment = sandbox。

    2.根据收据验证接口返回的状态码,如果status=21007,则表示当前的收据为沙盒环境下收据, t进行验证。

    苹果反馈的状态码;

    • 21000App Store无法读取你提供的JSON数据
    • 21002 收据数据不符合格式
    • 21003 收据无法被验证
    • 21004 你提供的共享密钥和账户的共享密钥不一致
    • 21005 收据服务器当前不可用
    • 21006 收据是有效的,但订阅服务已经过期。当收到这个信息时,解码后的收据信息也包含在返回内容中
    • 21007 收据信息是测试用(sandbox),但却被发送到产品环境中验证
    • 21008 收据信息是产品环境中使用,但却被发送到测试环境中验证

    先生产验证后测试验证,可以避免来回切换接口的麻烦。测试验证只要用你自己申请的测试appid的时候才会用到,用户不会拥有测试appid,所以不会走到测试验证这一步。即使生产验证出错,应该也不回返回21007状态吗。测试验证通过的用户名,和充值金额最好用数据库记录下来,方便公司资金核对。

    展开全文
  • IE浏览器InterNet选项的受信任站点下面的复选框【对该区域中所有站点要求服务器验证(http:s)】对应的修改值 0x00000043 为不勾选 string 对应67 0x00000047 为勾选 string 对应71      
     RegistryKey RkCwTs = Registry.CurrentUser.OpenSubKey(
    
                        @"SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2",true );
        

                        RkCwTs.SetValue("Flags", 0x00000043, RegistryValueKind.DWord);

    IE浏览器InterNet选项的受信任站点下面的复选框【对该区域中所有站点要求服务器验证(http:s)】对应的修改值

    0x00000043 为不勾选 string 对应67

    0x00000047 为勾选 string 对应71

      
     
            
    展开全文
  • 大部分的国内常见邮箱都能准确验证验证频率和数量多的话容易被封掉ip package com.tieniu; import java.io.IOException; import org.apache.commons.net.smtp.SMTPClient; import org.apache
  • appstore充值验证以及防止被刷单的讨论
  • 最近在做公司的微信公众号开发,微信官方的wiki写的也不是很详细,一不小心就入了一个坑。一开始入手的时候觉得有点混乱,开发完成之后发现其实不难...微信开发首先要进行服务器接口的验证,微信要确定填写的域名是...
  • 用户在一台服务器上登录验证身份后,再登录其他的服务器就不需要再次验证身份,但其他的服务器如何知道此用户是合法身份。 令牌方法 1,用户登录LS,合法,LS会分配一个令牌给用户,同时告诉TS此用户的令牌是多少...
  • python3 写的代理服务器验证工具

    千次阅读 2011-03-26 09:30:00
    由于经常要使用代理服务器,而网上提供的代理服务器很多都是临时的,一个一个的手动验证费时费力,所以我就想用python3的urllib库来写一个服务器获取、验证工具。 首先,要找一个提供代理服务器的网站,我用的是...
  • 微信小程序-01-关闭服务器验证

    千次阅读 2017-11-09 10:25:14
    在微信开发者工具中,可以临时开启 开发环境不校验请求域名、TLS版本及HTTPS证书 选项,跳过服务器域名的校验。此时,在微信开发者工具中及手机开启调试模式时,不会进行服务器域名的校验。
  • 服务器验证字已到期

    千次阅读 2009-02-25 14:27:00
    1、把服务器时间往前改改2、重启domino server3、打开administrators4、用cert.id验证user和serverID5、再把时间改过来6、重启domino
  • Python 对公布的代理服务器网站进行验证是否可以使用实验时找到一个网站实时公布代理服务器:http://www.xicidaili.com/nn/ 实验时找到一个网站实时公布代理服务器:http://www.xicidaili.com/nn/ 代码如下: import...
  • 3.弹出身份验证错误 4.在控制台输入“gpedit.msc”打开本地组策略。 5.进入组策略后,依此打开:“计算机配置”->“管理模板”->“系统”->“凭据分配”,然后在右侧的列表中找到“加密 ...
  • 苹果内购 服务器验证

    千次阅读 2018-10-31 10:03:53
    针对苹果内购,看了 大量的 其他blog和阅读官方文档才发现,其实 苹果内购服务器做的工作很少, ...服务器去重验证和加款,是建立在 用户已经在前端支付成功,然后由ios会得到一个字节流,然后 base6...
  • 基于163邮件服务器实现邮箱验证

    千次阅读 2018-03-11 22:22:11
    基于163实现邮箱验证,需先开启邮箱的SMTP服务,利用javax中的mail包实现对邮件的操作。 MailUtil.java public class MailUtil { public static final String FROM = "*******@163.com"; //发件人的email ...
  • 介绍几个绕开JS验证的方法(服务器验证是必要的)  绕开前端的JS验证通常有以下的方法:方法一: 将页面保存到自己机器上,然后把脚本检查的地方去掉,最后在自己机器上运行那个页面就可以了方法二: 该方式与方法...
  • [前言]:因为自己第一次配置开发者模式是2015年底,当时是SAE的应用,现在申请了一个阿里云的服务器,根据官方文档尝试一晚上无果,自己又找资料成功完成启用微信公众号后台开发者模式的服务器设置。一、前提1、购买...
  • 当员工出差在外需要访问公司服务器时,可以通过安全的SSL VPN通道进行访问,如果验证身份时使用域服务器帐号信息,在减少操作步骤的同时,也提高了安全性。 域服务器配置 具体的配置请参考文章:Windows 2008 ...
  • 【java】微信服务器配置 Token验证

    千次阅读 2018-08-30 11:04:54
    这个token只用于验证开发者服务器。 根据官方开发文档,服务器需要接收参数并进行验证验证通过后再返回其中一个参数 接收,并验证类 @Controller @RequestMapping({ "weixin/callback" }...
  • 压缩包包含两个文件夹,分别是客户端和服务器端。...服务器端包含一个SQL的数据库,中间只有一张User的表,只是为了验证登录。 连接的IP设定为本机:127.0.0.1 端口号设定为:13 帐号:admin 密码:111
  • 苹果内购支付 服务器验证

    千次阅读 2017-12-19 11:56:28
    /** * 客户端支付完后调用的接口 * 验证通过后 做后续业务逻辑处理 */ public function payendtovalidate() { $receipt_data=isset($_POST['receipt_data']) ? $_POST['receipt_data'] : '';//待验证数据 ...
  • Ubuntu DHCP服务器搭建与验证

    千次阅读 2018-03-16 19:24:18
    Ubuntu DHCP服务器搭建与验证软件环境说明: 虚拟机:VMWareStation12.5.0 DHCP服务器端:Ubuntu12.04 DHCP客户端:Ubuntu16.04 宿主机:Windows7旗舰版 摘要: 在宿主机上应用VMWareStation开启一个DHCP服务端系统...
  • iis搭建ftp服务器及身份验证设置

    千次阅读 2018-12-19 16:30:58
    在win7下搭建ftp服务器:    搭建FTP安装步骤:    1、安装FTP服务器:       1)点击【开始】—【控制面板】—【程序】—...
  •  怎么判断服务器ID文件是否过期了呢?   ...对管理员来说,很直接的就是当打开服务器,选择相应的服务器...就是直接查看服务器ID文件的过期日期,当然,如果服务器ID文件过期了,就不能打开当前服务器,在Loca
  • 如何验证linux服务器端口是否开通

    千次阅读 2019-01-10 14:06:51
    如何验证linux服务器端口是否开通
  • 新浪邮箱的SMTP服务器不需要身份验证。 以下代码的功能是可以用自己的新浪邮箱发送邮件给QQ邮箱。提醒是注意去邮箱设置开启SMTP服务器。实验结果是代码验证可行。代码的来源是...
  • 刚开始看官方文档,很容易理解。就是说你自己搭建一个web server,并能接受admob给你... 理解完以后,顿时觉得很困惑,难道接激励视频广告还得自己架设一台服务器? 官方SDK的回调事件RewardedAd.OnUserEarnedRewa...
  • 微信公众平台开发之验证服务器有效性及消息合法性(java)

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 950,838
精华内容 380,335
关键字:

服务器验证