个人使用阿里云oss出现晚上被刷流量而损失钱财的例子屡见不鲜。我也是前几天才买来试试水,幸好有热心网友提醒,不然哪天可能就要完蛋了!
所以,为了避免被刷流量,我在网上浏览了各种不同的技巧,最终按照我自己认为恰当的方法完成了一套香港 oss + CloudFlare 的下行免流 & 阻止他人获取 bucket id 的方法。
配置 oss
免下行流量
想要下行免流,必须符合条件!
适用于 Cloudflare CDN 与阿里云 OSS 的共同客户,并且源站在阿里云 OSS 除中国大陆外的指定地区或国家,同时使用的存储类型为同城冗余标准型或本地冗余标准型的客户。
如果不符合,也可以考虑使用其他免费的云存储:如 backblaze
自定义域名配置
关于 oss 的配置,可以参照此处。我已经写过文章了。使用阿里云 oss 存储数据。或许会有一些地方不同,下面会详细陈述。
创建 Bucket 的注意事项
请尽量使用复杂的,不容易被猜到的 bucket ID 。毕竟总长度能到63位,咱自己也没必要记住它。如果被猜出,很可能被刷流量。
绑定域名
与之前文章操作中不同的是,你需要将域名先绑定到 CouldFlare 上,并 A 记录到自己的服务器(开启橙标防护)。
别忘了在 oss 的 bucket 中绑定需要的自定义域名。
获取SSL证书
为了避免无限重定向,我们需要自己的服务器上也有 HTTPS 。
设定反向代理
反向代理的域名是 oss 的 Bucket 域名(概览里)。请记住保密!不要泄露!
测试
现在各项应该已经正常了,你可以上传一个文件到 oss 上测试一下。自定义域名中是否可以正常查看图片等。
再试试让它报错(直接访问根目录也行)
很明显,这里显示了我们的原地址 。坏人可以轻松通过这种方法刷爆流量,一晚上倾家荡产(没几万,几千也不是问题)
解决源站根目录与404报错
根目录报错
想解决根目录报错,需要依靠 CloudFlare 的 Workers 。
创建一个 workers ,并把它设置到自定义域名,编辑内容。
配置内容如下:
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request))
})
/**
* Fetch and log a request
* @param {Request} request
*/
async function handleRequest(request) {
return new Response('Hello!', { status: 200 })
}
将它设定到我们的域名。
如此操作后,访问根目录就只会提示 Hello 了。
404 报错
解决404报错需要我们自定义反向代理中的 404 页面,避免使用 oss 的报错。
添加以下文本即可
proxy_intercept_errors on;
error_page 500 502 503 504 /404.html;
error_page 400 404 /404.html;
location = /404.html{
root /www/wwwroot/YOUR-HOST-HERE;
}
你需要自己写一个 404.html 放到,
/www/wwwroot/YOUR-HOST-HERE;
或者改到其他任何你自定的404页面。
保存它并刷新缓存。
已成功,漂亮。
后记
理论上这么做已经可以避免它人获取到你的 bucket ID 和其他什么东西了。但我目前也没法完全确定此方法安全,希望还能和各位交流交流! 欢迎提出各种意见!
恶心人小技巧
其实我们也可以不适用 404 页面,而是伪造一个 oss 报错。
奈何我一直搞不明白如何直接返回 XML ,还是希望能在评论请教一下😂。
how long does it take for female viagra to work com 20 E2 AD 90 20Viagra 20Oral 20Jelly 20Prix 20 20Gnrique 20Viagra 20Prix viagra oral jelly prix We were both matches, but I d had kidney stones and was a little overweight, so they chose her, said Robert Maddox, explaining how his wife and the mother of his five children agreed without hesitation