naihe同源网页泄密防范思路 中发帖

QBin支持用户创建HTML代码,并且支持通过/r/xxx 路径显示渲染后的界面。 
那么就可能存在同源恶意攻击问题,那么如何防止这个问题,并且不影响正常用户使用呢?
这就是我们接下来需要讨论的问题。

在浏览器中进行网络请求都会强制携带一些headers信息,我们要关心的就是Referer和Origin
通过 referer和origin 我们可以知道这个请求来自哪里,那么就可以根据这些信息针对特定路径进行检测。
刚开始我的解决方法是增加一个中间件,在必要的接口中增加检测,关键代码如下
const referer = ctx.request.headers.get("referer");
if (referer && referer.includes("/r/")) {
return new Response(ctx, 403, "不允许从分享链接页面请求token");
...