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

已认证 已通过实名认证 xiuno
管理员
官方成员
8月前 483

对于数据的前后台传递,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",加密的内容))


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

最后于 8月前 被xiuno编辑 ,原因:

未登录提示:


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

特别说明

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

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