接口鉴权是指后台接口(包括自建后台接口与云函数)在被调用时需要对本次接口调用进行权限校验,否则容易发生越权行为。如商品删除接口,后台在收到请求时应当校验调用者的身份信息(如 openid、 ip 地址、开发者自定义的登录信息等),只有指定用户才可以通过校验进行删除。
越权通常分为平行越权和垂直越权:
开发建议:
function actionDelete(){
    $item_id = $_POST["item_id"]; 
    $openid = $_POST["openid"];
    $ip = $_SERVER['REMOTE_ADDR'];
    $user_role = $_SESSION["user_role"];
    if ($openid === "xxx" &&
        $ip === "192.168.0.101" &&
        $user_role === "admin") {
            // 进行删除操作
            // ...
            return 0;
        } else {
            // 记录非法请求
            // ...
            return -1;
        }
}
            云函数接口鉴权
exports.main = async (event, context) => {
    const { OPENID, APPID, UNIONID } = cloud.getWXContext();
    if (OPENID === "xxx") {
        // 进行删除操作
        // ...
    } else {
        // 记录非法请求
        // ...
    }
}
            开发建议:
敏感信息是指一旦泄露可能会对开发者的业务、合作伙伴和用户带来利益损害的数据,包括但不限于帐号 Appsecret、特权帐号信息、后台加密密钥、登录账户密码、用户身份证号、手机号、银行卡号等。
开发建议:
| 敏感信息类型 | 展示样例 | 
|---|---|
| 姓名 | 名字只有两个字,对第一个字打码,如:*三。 多于两个字,只保留第一个和最后一个,其余都打码,如:王*四、欧**五 | 
| 身份证 | 只显示第一位和最后一位,如:3****************1 | 
| 手机号 | 除去手机国际码后,手机号位数不少于10位时,只显示前三位和最后两位,如:156******77。手机号位数少于10位时,只显示前两位和后两位,如:12*****89。国家码可以完全显示。 | 
| 银行卡 | 只显示最后4位,如:************1234 | 
    
(c) 2024 chaojicainiao.com MIT license