前后端API接口安全问题,防止抓包恶意请求

哈喽,你们好,这是我第一次发帖子,最近遇到了一些关于后端api接口的安全问题,相信很多刚开始接触前后端的人都会遇到这样的问题,如果后端写了一个数据库操作的接口供前端使用,而这些接口无论是GET请求还是POST请求都会被抓包,然后恶意的去访问你的api接口。对你的数据进行操作,而我最近就遇到了同样的问题,我思索了很久,在无意之间想出了用时间戳做验证的这种办法。

首先,我是这样想的,时间戳他是一个可以进行一个前后端都可以去进行公共去访问的,而我们在前端可以先拿到当前的事件戳,这边我用小程序的javascript做实例

 var dates = new Date();
    var time=''+dates.getTime()
    var time2= time.substring(0,10)
    var time3=time2/259.999//这里是你自己写的算法,后端需要对应的进行解密

首先我们先拿到当前的时间戳,因为后端我用的是PHP 的time()函数,而这个函数只能获取时间戳的前十位数字,所以我在js里面做了对应的截取,截取了前十位的数字,然后利用自己的算法去进行加密,当然了,我这里只是做例子,只是除了一个数字,如果想让你的加密难破解,就需要利用很多算法去进行加密。好了,我们去拿我们加密好的时间戳的前十位数字去请求一下后端

 wx.request({
     url: '这里填写你的后端接口',
     data:{
       token:time3
     },
     success:(res)=>{
       console.log(res.data);
     }
   })
  },

为了方便,我使用了GET请求,但是最好用POST 这里的安全问题我也不多说了。之后我们来看一下后端怎么去处理一下前端发送给后端的时间戳加密数字,后端这边我用的PHP

public function token(){
          $tk = $_GET['tk'];
       
if(time()-$tk*259.999==1||time()-$tk*259.999==0){
    echo '程序执行的';
}else{
    echo '小子拿到接口了?拿到接口有啥用能访问吗??';
}

其实也不难理解,后端拿到前端给他的token之后,之后拿时间戳-前端给的token,如果结果是0和1就代表是你前端小程序去请求的,当然,经过我反复测试,3g网 4g网 5g网,无论网速多快多慢,他们相差的也只是0 和1秒,所以我们可以在if代码块里面写我们的数据库操作了。这样就算别人知道你url参数是个时间戳,但是他不知道你的算法,也同样无法去请求你的接口。

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用Wireshark抓包电脑软件的请求接口,可以按照以下步骤进行操作: 1. 首先,打开Wireshark软件。你可以从官方网站(https://www.wireshark.org/)下载并安装Wireshark。 2. 在Wireshark主界面的网络接口列表中,选择你希望抓包的网络接口。这可以是WLAN、以太网或其他网络接口。确保选择的是与你的电脑软件所使用的接口一致。 3. 在Wireshark上方的过滤器框中输入过滤条件。根据你想要抓取的软件请求接口的特定协议或目标IP地址进行过滤,以便只捕获相关的数据包。例如,你可以使用过滤器"tcp.port == 80"来捕获使用HTTP协议的数据包,其中80是HTTP默认端口号。 4. 点击Wireshark界面上的"Start"或类似按钮开始捕获数据包。 5. 打开你想要抓包的软件,并进行相应的操作,例如进行请求接口的操作。Wireshark将会开始捕获经过该网络接口的数据包。 6. 在Wireshark中,你可以查看或分析捕获到的数据包。你可以查看特定的请求接口数据包,包括请求头部、请求体以及服务器的响应报文。你可以通过选择某个数据包并查看其详细信息,或者使用Wireshark的分析功能进行更深入的分析。 通过以上步骤,你可以使用Wireshark来抓包电脑软件的请求接口,并对捕获到的数据进行分析和解读。请记住,在进行这些操作时,你需要确保你有合法的权限和合规的行为,遵守相关的法律和规定。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值