get请求与post请求数据防篡改安全传递方法建站心得

已认证已通过实名认证xiuno
管理员
官方成员
2023-8-29 885

对于数据的前后台传递,GET和POST都可以实现,相对于POST,GET是通过网址参数传输,很容易被篡改;当然,POST也不是绝对安全的,同样可以被修改。然而有时候这两种请求方式都会用到,如何更安全的传输数据就成了一个问题。


这里有一个简单的方法可以防止数据被篡改:就是参数校验!如下是一个GET参数传输


网址/s?a=utf-8&b=3&c=1&d=1


我们需要传输 a、b、c、d四个参数,为了防止任何一个参数被修改,我们这里加一个参数 x,x的值为abcd四个参数值的MD5加密字符串,这样x 就成了一个校验码,加密后的链接为:

x_key=md5('utf-8'.'3'.'1'.'1'.'password'); //PHP后台计算,其中password 为你自己设定的加密参数

网址/s?a=utf-8&b=3&c=1&d=1&x=x_key


当我们接收到这个链接并准备处理参数之前,同样执行 x_key_check=md5('abcd值'.'password');  并判断x_key_check是否和传递过来的 x值相等,如果相等,那么说明数据没有篡改,否则说明存在被篡改的数据!


这个方法适合链接的生成和接收端均在后台的情况,通过不可见的后端校验来防止数据被篡改。


这种方法同样适用于POST方法!


当然,如果你担心MD5被破解导致校验失效,还可以使用更加变态不可逆的加密方式来加密校验码,比如在PHP中使用:


md5(hash("sha256",加密的内容))


这样的加密校验基本无法被破解了!

最后于 2023-8-29被xiuno编辑,原因:

未登录提示:


关闭
他们喜欢这个资源
  • qq581988
  • 在下路人王
最新回复 (3)
  • 已通过实名认证chenjx323
    已封禁
    2
    该用户已被封禁,对应发言已被屏蔽!
    2023-9-6 回复
  • 在下路人王
    黑铁
    3
    啥也不说了,感谢xiuno Top网的分享!
    2024-2-6 回复
  • 黑铁
    4
    啥也不说了,感谢xiuno Top网的分享!
    2024-2-22 回复
    • Xiuno Top网
      5
        登陆 注册
  • 5
     点击可以快捷回复 感谢支持不错无奈一般生气回帖路过顶帖
    表情
在线客服

特别说明

QQ客服仅提供有偿服务,如无付费意愿,请勿扰!一般问题请站内发帖咨询!
服务项目:
1,xiuno插件模板定制开发
2,xiuno网站BUG修复
3,xiuno个性化定制
4,xiuno仿站等

客服工作时间:8:00~22:00
在线客服