标签 php 下的文章

阿里云MNS安全须知

0x00 背景

最近用了阿里云消息服务中的主题订阅,发现当 MNS 向 Endpoint 投递消息时,当前的签名机制会存在一定的风险

0x01 MNS 签名机制

MNS Endpoint 的签名机制是使用 sha1WithRSAEncryption 对一系列参数签名,Enpoint 接收到请求之后再从 header 里取出相应的参数并校验其签名。

其中 sha1WithRSAEncryption 算法就会用到一张 X509 证书,这个是本次实验的关键。

- 阅读剩余部分 -

PHP 获取一个月后的日期

在 PHP 里,如果想获取下个月的今天,我们通常会用 strtotime('2019-01-13 +1 month') 或者是 strtotime('next month', strtotime('2019-01-13')),结果是 1549987200,用 date 转换成字符串就是 2019-02-13,so easy!

随着时间流逝,到了 2019-01-31 这一天,这代码似乎出问题了,居然得到的是 2019-03-03???

- 阅读剩余部分 -

多个 Laravel 项目共用 migrations

在实际开发中,我们可能经常会遇到一个项目会建立两个 Laravel 项目,一个是面向用户的 web/API,一个是管理员后台,这两个项目一般情况下是共用一个数据库的,那么我们的 migration 可以共用吗?该怎么操作?

在各项目里建各自 migration

我们先在 web/APIadmin 里都建各自的 migration

- 阅读剩余部分 -

Windows 下通过命令行快速启动 nginx

进行 PHP 开发时,一般会用到 Apache 或者是 nginx 去作为 web server。

我是在 Windows 环境下进行开发的,使用 Apache 的时候,我会把 Apache 的 bin 目录加入到环境变量中去,这样我只要打开 Powershell 就能直接使用 httpd 命令来启动 Apache 了;又或者我会将它注册成服务,这样使用 net start apache2.4 也可以快速启动,很方便。

后来使用到了 nginx,我也尝试同样的方法——将 nginx 目录加入到环境变量,重启 Powershell(以管理员身份运行),直接执行 nginx 命令,发现报错了:

- 阅读剩余部分 -

修改 Parsedown 代码过滤 XSS

PHP 有个开源的 Markdown 解析器 —— Parsedown,很强大,但是在 XSS 过滤方面并不是做得特别好,我在用 Parsedown 对 Markdown 进行解析的时候,遇到了一些 XSS 过滤方面的问题。

Parsedown 会对 代码 区域内的 html 代码进行转义,代码区域外的却不进行转义,如以下代码所示

- 阅读剩余部分 -

php-excel —— PHP 生成 Excel 类

前段时间在弄问卷系统,为了能够实现问卷数据自动统计并生成一份 Excel 文档,找了个易用的 PHP 生成 Excel 的类 —— php-excel (项目地址:https://code.google.com/p/php-excel/
这个类很小,代码不到两百行,很适合新手阅读。
要使用它首先到项目地址下载 php-excel.class.php 这个文件,目前最新版是v1.1(php-excel-v1.1-20090910.zip, 挺古老了的)。考虑到可能会打不开项目地址,所以我在下面附上 php-excel.class.php 的所有代码吧。



- 阅读剩余部分 -