接口鉴权是指后台接口(包括自建后台接口与云函数)在被调用时需要对本次接口调用进行权限校验,否则容易发生越权行为。如商品删除接口,后台在收到请求时应当校验调用者的身份信息(如 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 |
© 2023 mianshi8.net MIT license