1.设置SPF, SPF (Sender Policy Framework) 的缩写,一种以IP地址认证电子邮件发件人身份的技术,是非常高效的垃圾邮件解决方案。接收邮件方会首先检查域名的SPF记录,来确定发件人的IP地址是否被包含在SPF记录里面,如果在,就认为是一封正确的邮件,否则会认为是一封伪造的邮件进行退回。像腾讯企业邮箱里面添加一条dns解析记录,类型为TXT,值为v=spf1 include:spf.mail.qq.com ~all,阿里云企业邮箱值为 v=spf1 include:spf.qiye.aliyun.com -all 2.设置DKIM(DKIM是一种防范电子邮件欺诈的验证技术,通过消息加密认证的方式对邮件发送域名进行验证。邮件发送方发送邮件时,利用本域私钥加密邮件生成DKIM签名,将DKIM签名及其相关信息插入邮件头。邮件接收方接收邮件时,通过DNS查询获得公钥,验证邮件DKIM签名的有效性。从而确认在邮件发送的过程中,防止邮件被恶意篡改,保证邮件内容的完整性。这个需要跟域名邮箱查找一下怎么设置,腾讯企业邮箱在打开【企业微信管理后台->协作->邮件->设置->DKIM验证->配置】,阿里云企业邮箱相对比较麻烦需要 请通过postmaster邮箱发送邮件至fankui@alibaba-inc.com(主题:阿里邮箱DKIM申请+公司名+域名) 3.设置DMARC(Domain-based Message Authentication, Reporting & Conformance)DMARC是一种基于现有的SPF和DKIM协议的可扩展电子邮件认证协议,在邮件收发双方建立了邮件反馈机制,便于邮件发送方和邮件接收方共同对域名的管理进行完善和监督。DMARC要求域名所有者在DNS记录中设置SPF记录和DKIM记录,并明确声明对验证失败邮件的处理策略。邮件接收方接收邮件时,首先通过DNS获取DMARC记录,再对邮件来源进行SPF验证和DKIM验证,对验证失败的邮件根据DMARC记录进行处理,并将处理结果反馈给发送方。DMARC能够有效识别并拦截欺诈邮件和钓鱼邮件,保障用户个人信息安全。) 腾讯企业邮箱里面添加一条dns解析记录,主机记录为_dmarc,类型为TXT,值为v=DMARC1; p=none; rua=mailto:mailauth-reports@qq.com,阿里云企业邮箱值为 v=DMARC1; p=quarantine; rua=mailto:a***@example.net;…
Leave a CommentCategory: 技术
在一个定时脚本里面,用了swoole 协程,脚本里面主要针对对一些数据 通过curl 推送到上游的服务中,测试脚本时候发现“段错误”,代码里面并没有echo 或者dump 输出这个文字,就怀疑是swoole 抛出的异常 在chagpt里面搜索这个错误,搜索对话如下: 在PHP CLI环境中输出“段错误”,可能是由以下几个原因导致的: 内存问题:PHP代码可能存在内存泄漏,导致内存耗尽,从而引发段错误。空指针:您可能在使用未初始化的指针,或者尝试访问超出数组范围的数组元素,导致段错误。越界访问:您的代码可能存在越界访问的情况,例如:尝试读取不存在的内存空间,或者尝试在数组边界之外访问数组元素。文件读写问题:您的代码可能存在文件读写问题,例如:尝试读取不存在的文件,或者尝试写入没有写入权限的文件。如果您碰到了“段错误”问题,建议您检查您的代码,尝试查找原因,并通过修改代码或者更新PHP版本来解决问题。 根据它的提示,我觉得是文件读写的问题,推送时候有对文件写入日志, 我注释了写入文件日志操作,没有出现这个bug了 反思这个事情,自己是拿来主义,对协程理解还是不深,为了加快脚本执行速度,引入协程加快curl执行,对写入日志并没有留意
Leave a Comment之前msyql表都是utf8字符集,目前仓库系统出现了表情符号不显示,因为客户是定制项链,里面有❤️的各种表情符号,仓库不显示这些符号 分析发现因为字符集限制了存储不了,这些表情符号都是空了,找到对应的表字段修改修改字符集 alter table t_package_goods MODIFY `customizedText` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT ” COMMENT ‘商品定文字’; 修改之后通过update sql 语句发现能存储,但是显示乱码,然后修改mysql 链接配置 字符集设置为utf8mb4,utf8mb4字符集包含了utf8 不影响,调整之后web页面不会乱码…
Leave a Comment大部分都是权限问题引起的,首先确定root用户能执行的命令 ,php去执行失败,把日志调试打印 首先看php执行的用户是谁 通过执行whoami命令 调试,网站上面运行的用户角色是谁,不同角色权限不一样,导致失败情况很多 确定角色之后,在根据执行命令调试错误 定位原因,像阿里云 oss 命令行会反馈具体错误原因, 创建文件夹 没有权限,不能写入日志 什么的 以上两个步骤,能解决问题。
Leave a Comment一个8年前的站点是php + apache + mysql的,最近发现缺少www前缀的域名访问,访问不了。打开之前的httpd 的配置文件发现 ServerName www.xxx.com:443 ServerAlias cdn.xxx.com:443 配置项没有对应 xxx.com, 调整了一下,用以下配置 更难兼容,之前配置写死了范围窄 ServerName xxx.com:443 ServerAlias *.xxx.com:443
Leave a Comment公司官网是WordPress做的,也不是内部二次开发,是外包给其他人,最近发现官网有webshell后门,很多文件被修改了,官网内容也被调整了。 排查是WordPress插件引起的导致的,首先排查服务器当前用户,进程查看,然后对比项目代码文件,把被修改的文件删除(webshell后门文件),然后检查服务器文件夹权限。 把阿里云服务防护提交到企业级,然后对服务全盘安全扫描。最终定位发现有个定时脚本被安装,每隔15分钟被执行,安装在nginx的执行用户下面。发现问题根源了,再观察2周看看。 WordPress插件还是不能信任,漏洞太多了,插件都是运营人员下载执行的。
Leave a Comment整体思路是gitlab-runner部署在公司内网环境,内网更新项目下来后然后通过Deployer同步到线上服务器。一开始想通过所有线上服务器安装gitlab-runner来更新代码,测试之后gitlab-ruuner只能有一台执行,还需要通过其他工具来批量发布,后面根据php项目情况调研了 Deployer ,通过Deployer 来发布到所有线上服务器。 首先在内网测试服务器,新建一个用户www ,然后设置密码,切换www用户安装gitlab-runner
Leave a Comment对接API接口调试,偶尔抛出签名异常,然后发个接口方,提示字符不能专业,中文不能转unicode,接口方调试过程中,提示不能转Unicode字符,项目跑了几个月之后出现地址字符 Villa 180/35,突然签名错误,接口方看了加密数据提示不能转义字符。 我们给了加密前字符串,如果按适用性,没必要强制不能转义 不能转Unicode ,按照统一签名算法,数据一直就行,这样也不会困恼调用放,判断里面有转义 有Unicode 可以 还原再保存数据,个人看法,做的功能接口,尽可能给使用者带来困恼
Leave a Comment最近针对客户提供的图片大小不一,导致页面排版错乱,所以安装一个nginx的功能模块来裁剪图片,image_filter来对图片属性操作,控制图片大小,这样图片不会变形。 安装插件很快,但是配置rewrite规则同事遇到一些问题,规则不生效,一般规则xxx_100x200.jpg 或者xxx.jpg@100×200@ ,在图片后缀添加参数最好。 nginx给的默认配置都是 针对图片缓存配置,这个是通用配置,然后同事在这个规则下面 配置重新导致失败 正确的逻辑,在这个配置规则之前配置rewrite规则,最终解析需要对应到实际图片这种,逻辑顺序需要理清
Leave a Comment在同一台服务器部署不同php框架项目,偶尔会出现Access denied 情况,提示访问被拒绝,调试单独php比如 a.php 里面具体内容 <?php phpinfo(); ?> a.php能正常访问,但是访问框架文件 就访问不了 ,然后看具体nginx 日志数据 提示 *91 FastCGI sent in stderr: “Access to the script ‘/data/web/xxx/public’ has been…
Leave a Comment