dongqigu0429 2016-01-11 21:35
浏览 24

使用哈希防止POST数据操作

I am going to protect the data an user enters in a forum using a hash value. I referenced to the following:

$hex = bin2hex(random_bytes(32));
$split = str_split($hex, 2);
array_unshift($split, '');

$secret = implode('\\x', $split), "
";
$id = 12345;
$hash = hash_hmac('sha256', $id, $secret);

source: owasp.org

It then states that this hash value can be passed along with the ID in the URL and can be verified like this in a different PHP script:

$secret = 'hash';
$id = $_REQUEST["id"]; //in this case the value is 12345
if (hash_equals(hash_hmac('sha256', $id, $secret), $_REQUEST["hash"])) {
  //no tampering detected, proceed with other processing
} else {
  //tampering of data detected
}

However, how have they passed the $secret variable to the different PHP script? I assume adding it to the url would completely defeat the purpose of the protection.

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥100 为什么这个恒流源电路不能恒流?
    • ¥15 有偿求跨组件数据流路径图
    • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
    • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
    • ¥15 CSAPPattacklab
    • ¥15 一直显示正在等待HID—ISP
    • ¥15 Python turtle 画图
    • ¥15 stm32开发clion时遇到的编译问题
    • ¥15 lna设计 源简并电感型共源放大器
    • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)