• 接口相关


    1、接口验证之解决ajax跨域:

    1>通过php配置。。。略

    2>通过服务器Nginx配置文件添加请求头的方式:

    单个域名的不说了,就直接origin后添加指定域名就行了。

    多个域名需要通过$http_origin系统变量获取请求源域名,并设置允许跨域访问

    add_header 'Access-Control-Allow-Origin' $http_origin;
    add_header 'Access-Control-Allow-Credentials' 'true';
    add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
    add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';

    注:如果ajax端请求的时候要求了Credentials include,那么Credentials必须设置为true,且此时Origin不能为'*'(w3c要求的)。此时用$http_origin来允许域名跨域访问,若需要访问限制,则在php中添加(ip等)。

    还有两种Nginx里配置多域名跨域的方法没成功,就是使用map映射添加 或者 用正则判断请求源域名是否为允许的并添加到数组一起设置到origin的方法,后期再要试一下

    2、接口验证之接口安全:

    1> 前后端约定secret;

    前端将请求参数+时间戳序列化

    把约定好的secret加载序列化参数后的字符串前面(或者规则自定就好)并进行md5加密,等到sign

    把sign和时间戳也加为参数去请求接口

    后端收到请求后,先看下有没有sign和时间戳内容,没有直接返回错误

    有的话将参数+约定好的secret按照与前端相同的格式md5加密后得到后端验证的sign

    如果与前端传过来的相同,则接口验证成功。

    2>由于js代码对用户透明,则无法保存secret,那么可以与后端协商一个根据接口动态生成secret的方式来避免展示secret。

    3>防刷:接口请求的ip限制,频次限制(每秒10次等)。 等待补充。

  • 相关阅读:
    go channel select如何屏蔽已关闭通道
    go err
    在OneNote中快速插入当前日期和时间
    如何查看Isilon节点的硬件信息?
    一个可用来记录Isilon各个节点的CPU,网络,磁盘性能的命令
    Linux中如何查看文件夹的大小
    如何同步两台Linux机器的时间?
    Linux中的硬链接(hard link)和符号连接(symbolic link)
    在Cygwin里,如何进入到C盘?
    Remote Desktop Session中如何触发Ctrl+Alt+Delete?
  • 原文地址:https://www.cnblogs.com/GetLastError/p/8491207.html
Copyright © 2020-2023  润新知