Submitted by gouki on 2023, February 3, 10:35 AM
laravel在debug模式下抛出异常时,会把当前的环境变量等打印出来,即使是开发机、测试机,其实有时候也不希望将一些关键的变量公开给所有人,比如密码、APPKEY(主要是不少人在上传的时候APPKEY本地和服务器一致),还有各类OSS、微信的appId,secret,token等,所以就需要在抛出异常时隐藏掉。
网上查到的是在config/app.php中增加:debug_hide 的数组下标,对应的数据是_ENV,_SERVER,其实就是把遍历这些全局变量,对指定的KEY进行隐藏。但偶尔也查到有debug_blacklist。于是全文搜索了一下,发现框架里是:foreach([config('app.debug_hide'),config('app.debug_blacklist')]),看来这是一个历史 遗留问题。
知道怎么写之后就方便了。例如:
'debug_hide'=>[
'_ENV' => ['APP_KEY']
]
,随便抛一个异常可以看到 ,输出的APP_KEY的地方,已经不再是标准值了,而是一堆***,关键变量其实有很多,如果一个个写,感觉有点累,再加上,它不支持 * 的模拟判断,比如*KEY*,则完全无效。于是偷了个懒:
'debug_hide'=>[
'_ENV' => array_filter(array_keys($_ENV),fn($v)=> Str::contains(strtolower($v), ['oss_', 'db_', 'cookie', 'key','secret', 'password', 'aliyun']) ),
]
既然都在debug_mode下了。也不在乎这点性能了。。
tips:
1、不能用str($v)->contains,因为str这个helper函数,居然还调用了env的class,而在刚加载config文件时。env的类还没有加载进来。
2、strtolower,是因为Str::contains不能忽略大小写。虽然.env都是标准的大写,但你不能保证其他人有没有写小写(又不能抽他们)。所以先tolower一下
解决!
PHP | 评论:0
| 阅读:4357
Submitted by gouki on 2023, January 31, 9:16 AM
标题中出现的【5号、7号锂电池】,现在在PDD或者淘宝上也是铺天盖地了,上去看看平均一节电池也差不多在10~20元的区间(看店家怎么个下刀了)
买它的原因还是因为,苹果旧版的键盘、鼠标太耗电了,有时候我就在想,是不是应该卖掉换新的。毕竟新的都是可充电的,再这样耗下去,我换电池的钱都快可以买新键盘了。
原来我是一直用IBM的一个移动键盘,但是在我当时的带鱼屏摔下来把小红点砸坏后,好象就有点不听使唤了。当然也能用,就是偶尔会出现乱码的情况,这时候就必须重启重连才能恢复正常。在这点上,确实不如苹果原生的支持的好。
话题扯的有点远,回到这个电池上,目前这些电池几乎都是在上面开了一个typec的口,意味着typec就能够直接充电,充电的时候会亮个灯,但缺点是,我永远不知道这个电什么时候能够充满,比如就象我现在,充了一晚上,灯还是亮着。
然后还有个缺点是,你永远不知道这个电能用多久,我放在键盘里,一直显示是100%,开始我感觉很耐用,可是几天后,突然键盘提醒我快没电了,看了一下变成40%。这个100%~40%,毫无症兆,中午变40%,然后晚上就0%了。实话实说,感觉他没有达到标称的3330mah。不过我也没有专业设备来测试,只能凭眼睛看了。
主要是让我不太舒服的是电量的突然崩完。这个有点不太方便。目前还在坚持着用,3330mAh的,还不如我10年前买的eneloop,他们的使用时间感觉上还是差不多,但那个我用了10年了。。。
---
再用段时间看看是否继续使用,或者换成eneloop,又或者直接换成可充电的鼠标键盘(其实并不是很喜欢,因为成本太高了,哪天充不进电,一个鼠标就废了,而我的 m557,130多,因为微动开关的问题,2年换一个没那么心疼,万一来个充电鼠标因为微动开关换,那就严重提升成本了。),有点怀念15年前的雷柏,又好又爽,电池也能用半年。只是最近买了几个,不是飘的厉害就是卡顿,在mac下的兼容还是有问题。
產品 | 评论:0
| 阅读:3524
Submitted by gouki on 2023, January 30, 12:01 PM
发现从PHP7.4升到PHP8后,就一个地方,那就是 get_magic_quotes_gpc 这个函数。报错信息是:PHP message: PHP Fatal error: Uncaught Error: Call to undefined function get_magic_quotes_gpc()。
方法未定义?看了下文档,原来从7.4.1开始就已经不再支持了,而且永远返回False,在PHP8中彻底移除,仅此而已,于是乎。。。。
在 include/common.php 文件中,在调用 get_magic_quotes_gpc上面加了一段 :
if(!function_exists('get_magic_quotes_gpc')){
function get_magic_quotes_gpc(){
return false;
}
}
然后,一切正常,所以我就不再上传新包了。(页面详情可能有不正常的情况,是因为我在上一页下一页的时候。$article[articleid]上没有加单引号,进入后台在模板管理 default/show.php 搜到 57行,下一篇的链接就是 ,调整一下即可)
----
改完后才发现,问题很多啊。。。比如 global.php的296行,$article[image] ,这种代码太多了。。。。估计得一点点改了,php4的后遗症啊。
----
只能说解决了95%的问题,其它的只能遇到后慢慢改了。。。我也不可能一个个的去定义:define('image','image');。当然 这样就彻底解决了,只是有点2
PHP | 评论:1
| 阅读:10269
Submitted by gouki on 2023, January 22, 9:56 PM
手贱了一下,用win32diskimager把ISO写到U盘,然后就各种报磁盘未格式化,用磁盘工具管理也无法进行处理,无法删除无法弄。
查了下资料,只能用powershell 管理员模式,运行diskpart,然后list disk。可以看到所有的盘,找到对你容量的U盘。select disk {num}。
再运行list disk,会看到你select的盘前面有个*号。这时候就比较放心了
运行clean 清除所有数据
再运行create partition primary,创建主分区,后面就可以用磁盘工具操作了。
至此,恢复完成
Misc | 评论:0
| 阅读:3492
Submitted by gouki on 2023, January 20, 8:52 PM
经历了一波又一波的轮回,neatstudio.com又备案了。在没有备案的这段时间,web server放置在过:aws ec2/lightsail/do/linode等,部署地有美国、新加坡、香港、日本等,也放在过国内,使用cloudflared tunnel进行打洞(说起这玩意,就感觉郁闷 ,这玩意把我的机器 IO拖的极慢,退出tunnel后,直接IO几乎重置。。真可怕,难道我的neatstudio.com是世纪大站?开个玩笑)
如今,他终于直接部署在国内了,这样就可以用国内的RDS,节约点数据库资源。当然前面还是用CF做了一个代理。
前两天备案,关停了一天(当时非常担心,怕因为春节放假而无人审核,因为在12月底1月初的时候,有一波备案,整整差不多20天都没有人审核),所幸春节前备案好快,第二天就通过了。
感恩
Misc | 评论:0
| 阅读:3347