亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

PHP接口安全處理

標簽:
PHP Html5 Yii

<?php

/**

* SignCheck : session key 对称式 加密校验.

* 注:公私钥模式可以避免私钥被窃取.

*/

// Client:

$time = time();

$url = "name=dudj&password=123456&telephone=130****8873&time={$time}";

// Client和Server通用私钥.

$uuid = 'b9514c52-5363-4364-b73f-a2ec93ae6b34';

function getSign($url, $uuid, $encode = true)

{

    parse_str( $url, $arr );

    if (! $encode ) { 

        unset($arr['sign']);

    } 

    // 1. 参数按首字母排序

    ksort($arr, SORT_REGULAR);

    $str = http_build_query($arr);

    // 2. 参数字符串拼接私钥(TODO自定义)

    $new_str = $str . $uuid;

    // 3. 生成新sign(TODO自定义)

    $sign = openssl_encrypt($new_str, 'AES-128-CBC', $uuid, OPENSSL_RAW_DATA, substr($uuid, 0, 16));

    return md5($sign);

}

// 4. 参数拼接sign进行请求

$client_sign = getSign($url, $uuid);

$request_url = $url . "&sign={$client_sign}";

// Server:

// 去除sign重新校验,并检查time有效期

$server_sign = getSign($request_url, $uuid, false);

if(($client_sign == $server_sign) && ((time()-$time)<5)){

    echo "{$server_sign} 有效,且在有效期内.\n";

    //做接口处理

    parse_str( $url, $arr );

    var_dump($arr);

}else{

    return "非法请求.\n";

}

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
PHP開發工程師
手記
粉絲
0
獲贊與收藏
49

關注作者,訂閱最新文章

閱讀免費教程

  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消