• 如何防止http请求数据被篡改


    方式一:设置客户端IP黑/白名单

    1.1客户端所有请求,请求到代理服务器(nginx),代理服务器维护黑/白名单的ip,决定是否转发请求;

    1.2项目创建一个filter,拦截所有请求,在filter的方法中,通过request信息匹配ip黑/白名单,和url的拦截规则,决定是否合法;

    有点:简单粗暴;

    确定:需要客户端的IP固定;

    应用场景:为系统的后台管理服务,客服需要人工审批和通过涉及到钱财的业务;

    方式二、请求参数Sign签名

    2.1前端请求发起http请求,对参数排序,然后使用参数与私钥拼接,在进行md5加密等方式,生成一个签名出来,一起发给服务端,服务端这边获取到参数,签名,再使用自己的私钥进行同样方式的加密生成签名,比对签名是否一致。一致则认为合法,不一致则不合法。担水无法防止重复请求攻击;

    2.2针对上面方法升级,可以缓存每次请求的MD5值,或者每个请求添加uuid+随机数这样一个代表请求序号的标识。然后请求到服务端时,服务端想办法缓存起来起来这个标识,每次请求过来时,判断是否已经请求过。

    2.3在请求的参数中和签名结果里,假如时间戳这个参数,业务服务器一方面比较签名结果,一方面根据时间戳,来认证请求的合法性,比如允许请求的时间戳与服务器当前时间,存在20秒的误差等自定义规则。超过20秒的合法请求,服务器也不处理,防止恶意的重复请求。

    方式三、请求方式换成Https。

    http请求过程:

    建立TCP连接——>客户端向服务器发送请求命令——>服务器应答——>关闭TCP连接——>客户端接受到服务器响应的数据

    ssl(secure sockets Layer 安全套接字协议)

    越努力,越幸运!!! good good study,day day up!!!
  • 相关阅读:
    复习重温(类型转换)
    题解SDOI/SXOI2022 子串统计
    frp
    mysql 查询n天内的数据 涂涂
    mysql导入导出数据 涂涂
    查看端口占用+机器联通 涂涂
    java运行服务卡住排查——jstack 涂涂
    mysql链接错误,导致拒绝链接 涂涂
    linux后台执行程序 涂涂
    linux删除指定日期的文件(手动+自动) 涂涂
  • 原文地址:https://www.cnblogs.com/canglongdao/p/12756155.html
Copyright © 2020-2023  润新知