接口防止恶意调用的安全策略

本文介绍了为防止微信分享接口被恶意调用而采取的安全措施,包括在后端CORS过滤器中限定允许的请求域名,并通过读取referer判断请求来源。同时,讨论了在HTTP环境下确保referer发送的配置以及不同Referrer Policy的使用场景。虽然这些措施能有效阻止其他域名和直接访问,但在接口测试工具中仍可通过手动设定referrer进行访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.背景

需要做一个微信分享的后端支持接口,请求响应中包含appid,为了避免对外暴露配置相应的安全策略

2.步骤

限制请求域名

在后端cors过滤器中添加指定的域名作为allowedOrigins的值,非此域名无法访问接口\

@Configuration
public class CorsConfig implements WebMvcConfigurer {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
            .allowedOrigins("aa.bb.cc")
            .allowCredentials(true)
            .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
            .maxAge(3600);
    }
}

限制请求来源

在后端读取referer值判断是否是规定的来源页,否则禁止调用

		String referer = request.getHeader("referer");
		String pattern = "^http://h5.zwlearn.com/yifu.*$";
		if (referer == null || !Pattern.matches(pattern, referer)) {
			throw new RRException("禁止调用");
		}

在以上步骤时,因为做了nginx的反向代理,所以为了获得真实的请求域名和请求来源页,做如下配置:

	location /api/{
		proxy_set_header Ref
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值