从泰国浪回来了
呆了10天回来了。
不出意外的腰子还在,顺便再带回来个酷似腰子的山的照片。 。。这是个老梗了,不过我不是金鱼,伤疤我都喜欢时不时的扒一下防止忘了。
呆了10天回来了。
不出意外的腰子还在,顺便再带回来个酷似腰子的山的照片。 。。这是个老梗了,不过我不是金鱼,伤疤我都喜欢时不时的扒一下防止忘了。
老婆接到hsbc信用卡中心电话说有一笔有疑问的新加坡的付款,问是否本人刷的。我老婆说不是,hsbc于是说会拒付这笔付款然后信用卡被立即冻结并换新卡。我老婆然后告诉我了这件事,还问我oracle是啥。。。我。。。
前几天开放了新区额度,我申请了新区,然后想弄一点费用出来,这样帐号会更稳些。好吧,现在帐单是有了,但是拒付了,疯了。
赶紧去把付款方式改了并重新提交支付,手里没有可用的信用卡了,只能改成paypal,接下来扣了三次并退款,0,1,100新元,希望能过这一关。
以前用了这个从nodeseek上看到的脚本小改后来使用,结果今天不出意外的出了意外。跨月挂了。
分析了下代码,它的进出流量是取的 interface[0].traffic.total.tx和rx,这个是网卡累计总流量。在第一个月的时候是正确的,统计到的总流量就是当月流量嘛。但第二个月,就把前一个月的也包含进来了。
json里其实是应该取 interface[0].traffic.month[n].tx和rx,上面的下标n就是month里最大的那个,因为是按照时间升序排列的,下标最大的一个即为当前月。
修正后代码如下:
#!/bin/bash
# 设置网卡名称
INTERFACE="eth0"
# 设置流量限制(单位:GB)
LIMIT=195
# 获取当前月份的索引
MONTH_INDEX=$(vnstat -i $INTERFACE --json | jq '.interfaces[0].traffic.month | length - 1')
# 获取当月流量数据(单位:KB)
TX=$(vnstat -i $INTERFACE --json | jq --argjson idx "$MONTH_INDEX" '.interfaces[0].traffic.month[$idx].tx')
RX=$(vnstat -i $INTERFACE --json | jq --argjson idx "$MONTH_INDEX" '.interfaces[0].traffic.month[$idx].rx')
# 计算总流量(单位:GB)
GB1=$(echo "scale=2; $TX / 1024 / 1024 / 1024" | bc)
GB2=$(echo "scale=2; $RX / 1024 / 1024 / 1024" | bc)
GB1=$(printf "%.2f" $GB1)
GB2=$(printf "%.2f" $GB2)
echo "Total traffic out: $GB1 GB"
echo "Total traffic in: $GB2 GB"
# 比较并选择较大的流量值(共享带宽包)
if (( $(echo "$GB2 > $GB1" | bc -l) )); then
GB=$GB2
else
GB=$GB1
fi
echo "CBWP traffic: $GB GB"
# 检查是否超过流量限制
if (( $(echo "$GB >= $LIMIT" | bc -l) )); then
echo "Traffic limit exceeded. Disabling network interface."
ip link set $INTERFACE down
fi
科普下使用方式,时不时有朋友和我说我说得太简略了。。好吧,我假定0基础。
安装必要软件包 apt install bc jq vnstat
设置vnstat开机启动(奇大怪,正常apt install都会做这个,但vnstat似乎没有) systemctl enable vnstat
nano /usr/local/bin/checkcdt.sh 然后输入上面代码,然后 ctrl-x 存盘退出啦,有YES就YES,有默认值就默认值
chmod +x /usr/local/bin/checkcdt.sh
crontab -e 然后选择1,即 nano,如果第一次用的话。 然后在最后加上一行,
*/1 * * * * /usr/local/bin/checkcdt.sh
,然后ctrl-x退出。 搞定。
它会每分钟检查一次流量,如果到达了195G时就把网卡断了。不说复杂了,下个月的时候重启下机器就活过来了。
在忙一个展会,有场专门活动的入场券需要二维码分发,因为只是个临时活动,不进票务系统和过检票闸机,所以得用户入场时做一个单独的验票(码)的H5小玩意,客服妹子们入场时用手机去扫票验码。
老板觉得这小东西叫上产品、UI,前端什么的一帮子人动静也太大,所以这工作就交给我这苦力了。
接到这要求第一反应是,我就一个后端啊,做页面也太难为人了,而且这页面还要扫码什么的,晕。。。硬着头皮一问gpt,好简单!
引入二维码库(html5-qrcode)
<script src="https://xxxxxx/html5-qrcode.min.js"></script>
扫码
const html5QrCode = new Html5Qrcode("reader");
html5QrCode.start(
{ facingMode: "environment" },
{
fps: 20,
qrbox: { width: 300, height: 300 }
},
onScanSuccess, //成功
onScanFailure // 失败
);
扫到了二维码
function onScanSuccess(decodedText, decodedResult) {
... decodeText用ajax发送给后端API,然后后端提示是否允许入场等
}
当然,还有点简单的html和css,也包括ajax什么的,这些全是gpt完成,ai独自完成度100%。
至于后端api,这个自己码下代码太容易了,后端基本功,不值一提。
总共花了一个小时不到,交工,看上去象模象样蛮有成就感的。
这周的第二次了。我本来昨天还在想要不要把博客直接裸连在阿里云香港上,这样访问快一点,现在也不用想了。
当然,如果只是哪个朋友想测试一下我说的这些安全性的东西,那是欢迎的,因为数据有点象是点到为止的感觉。最终结果图表上可以看出,cc攻击完全失败了。
这次是有针对性的cc攻击,是访问的 /search,通常,在大多数系统里面,search相当耗费资源,是个cc的极佳入手点。不过,我设置了针对search的js挑战,所以,全部拦截了下来。
即,设置只允许白名单URL,其余的全部进行质询,search不在白名单。与缓存搭配,也就是,白名单的URL全部缓存,非白名单的即质询。
看上去天衣无缝了?不,还有一个重大的问题,即404攻击。我先卖个关子,在接下来的时间里我再来说这个。
针对/search/进行攻击被拦截
全站缓存效果