showdoc内容&timestamp被实体转义成×tamp

showdoc版本2.9.12

//前端有个html_decode函数转义了 t.replace(/&/g, “&”) 导致 html有&times的地方被浏览器转换成了×号

//输出一次htmlspecialchars,还是会被前端转义成正常的&导致显示错误,所以需要两次输出才能正常显示

例如POST:open_id=OPEN_ID&timestamp=1234567890 变成 open_id=OPEN_ID×tamp=1234567890

修改\showdoc\server\Application\Api\Controller\PageController.class.php

//页面详情
public function info(){最后
$page[‘page_content’]=htmlspecialchars(htmlspecialchars($page[‘page_content’]));

发表在 服务器 | 标签为 , | 留下评论

linux统计日志文件中出现多少域名

今天遇到需要统计日志文件中出现了多少个域名,且不需要重复显示,去掉awk后面部分也可以用来显示出现多少次。
grep -Poh “://.*?/” ./path/* |sort|uniq-c|awk -F “/” ‘{print $3}’

参数说明:
P用正则
o只显示搜索到部分
h不显示文件名
awk最后用/分割下打印分割后第三个变量

发表在 服务器 | 标签为 | 留下评论

【原创】windows安装配置vscode编辑器golang开发环境和插件

VS Code配置Go语言插件和开发环境

golang逐渐普遍的今天,也安装个试试看所谓的协程,因为免费所有找个电脑关键一搜索就能很方便安装到vscode

就像其它语言一样除了选择好编辑器一样,还需要安装本身的编译器

官方地址:https://golang.google.cn/dl/
最新windows版:https://golang.google.cn/dl/go1.16.7.windows-amd64.msi

安装后设置GOPROXY用国内镜像来安装插件,不然会无法安装被拦了,打开终端执行以下命令:

go env -w GOPROXY=https://goproxy.cn,direct

VS Code启动后会自动检测提示安装中文包,没有就点界面左边最下面的图标打开扩展管理,输入chinese,安装语言包和go相关扩展,安装后重启。

接着要安装插件,Windows平台按下Ctrl+Shift+P,Mac平台按Command+Shift+P,弹出一个输入框,输入>go:install,下面会自动搜索相关命令,选择Go:Install/Update Tools这个命令,按下图选中并会回车执行该命令(或者使用鼠标点击该命令),安装后提示成功,如下图:

如无法安装重启下ide再尝试,安装成功后跑一段go试试看,按F5运行,结果出现了错误,根据提示进入launch.json修改配置,应该是找不到编译对应的文件,修改使用下图注释部分“${file}”变量。

修改后保存,重新运行下F5跑下,没错误了,出现结果了。

发表在 服务器 | 标签为 | 留下评论

windows10设置文件夹右键打开cmd命令窗口

之前windows都是使用文件夹右键选项来方便打开cmd,重新安装系统后发现不见了,只有一个系统自带的power shell,还是习惯cmd,也很简单,看下图开始输入regedit打开注册表,如图添加对应的项和值即可。

1、打开注册表编辑器并依次定位到“HKEY_CLASSES_ROOT\Folder\shell”,在shell项下新建一个cmdPrompt子项,并双击其右侧窗格的“默认”名称,将其数值数据修改为“打开命令提示符窗口”;2、随后再在cmdPrompt子项下建立一个command项,将其数值数据修改为“c:\windows\system32\cmd.exe cd “%1””。修改完成后关闭注册表编辑器;

 

发表在 服务器 | 标签为 | 留下评论

git追溯当前分支从什么分支创建而来的命令

可以使用git reflog show –date=iso remotes/origin/xxx 这个命令来追溯

发表在 服务器 | 标签为 | 留下评论

PHP5.6.40进行RSA加解密

最近因为工作编写接口安全用到RSA加密解密,记录下。

环境:windows10,php5.6.40

下载OpenSSL安装地址:http://slproweb.com/products/Win32OpenSSL.html

安装后cmd进入bin目录进行生成私钥和公钥

//生成私钥
openssl genrsa -out rsa_private_key.pem 1024 
//生成公钥
openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem

将生成的私钥、公钥拷贝到你的php执行目录中。

用下面价格函数就可以实现rsa加解密了

openssl_pkey_get_private
openssl_private_decrypt
openssl_private_encrypt
openssl_pkey_get_public
openssl_public_decrypt
openssl_public_encrypt

参考资料:https://www.php.net/manual/zh/book.openssl.php

发表在 服务器 | 标签为 , | 留下评论

./swoole_config.h:22:2: error: #error “GCC 4.8 or later required”

Centos下php7安装swoole 扩展的时候,提示的错误。我记得gcc 版本升级过一次到4.8.5,无语。

root@netpc.com.cn swoole-4.3.5]# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/i686-pc-linux-gnu/4.8.5/lto-wrapper
Target: i686-pc-linux-gnu
Configured with: ../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
Thread model: posix
gcc version 4.8.5 (GCC)

[root@netpc.com.cn swoole-4.3.5]# cc -v
Using built-in specs.
Target: i386-redhat-linux
Configured with: ../configure –prefix=/usr –mandir=/usr/share/man –infodir=/usr/share/info –enable-shared –enable-threads=posix –enable-checking=release –with-system-zlib –enable-__cxa_atexit –disable-libunwind-exceptions –enable-libgcj-multifile –enable-languages=c,c++,objc,obj-c++,java,fortran,ada –enable-java-awt=gtk –disable-dssi –disable-plugin –with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre –with-cpu=generic –host=i386-redhat-linux
Thread model: posix
gcc version 4.1.2 20080704 (Red Hat 4.1.2-55)

老旧共存啊?!

先找下到底有多少gcc

[root@netpc.com.cn ~]# find / -name ‘gcc’
/usr/bin/gcc
/usr/libexec/gcc
/usr/lib/gcc
/usr/local/bin/gcc
/usr/local/libexec/gcc
/usr/local/lib/gcc
/usr/local/src/gcc-4.8.5/gcc-build-4.8.5/gcc
/usr/local/src/gcc-4.8.5/gcc
/usr/local/src/gcc-4.8.5/gcc/testsuite/ada/acats/tests/gc

接着替换下:

mv /usr/bin/gcc /usr/bin/gcc4.1.2
ln -s /usr/local/bin/gcc /usr/bin/gcc

搞定

发表在 服务器 | 标签为 , | 留下评论

centos升级autoconf

服务器Centos因为安装一些包发现autoconf版本不够,需要升级。

[root@netpc.com.cn ]# rpm -qf /usr/bin/autoconf
autoconf-2.59-12
[root@netpc.com.cn ]# rpm -e –nodeps autoconf-2.59-12

[root@netpc.com.cn ]# wget ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz

[root@netpc.com.cn src]# tar zxvf ./autoconf-2.69.tar.gz
[root@netpc.com.cn src]# cd autoconf-2.69
[root@netpc.com.cn autoconf-2.69]# ./configure –prefix=/usr/

make&&make install

[root@netpc.com.cn autoconf-2.69]# /usr/bin/autoconf -V
autoconf (GNU Autoconf) 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+/Autoconf: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>, <http://gnu.org/licenses/exceptions.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by David J. MacKenzie and Akim Demaille.

搞定

发表在 服务器 | 标签为 | 留下评论

【原创】php7安装扩展错误AS_CASE、AC_DEFINE、AC_CANONICAL_HOST

今天服务器安装swoole扩展死活提示错误:

[root@netpc.com.cn swoole-4.0.0]# /usr/local/php7/bin/phpize
Configuring for:
PHP Api Version: 20151012
Zend Module Api No: 20151012
Zend Extension Api No: 320151012
config.m4:262: warning: AC_CANONICAL_HOST invoked multiple times
configure:7794: error: possibly undefined macro: AS_CASE
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
configure:7801: error: possibly undefined macro: AC_DEFINE

查README和文档里
autoconf 2.69
gcc 4.8

查询本机发现autoconf版本低了

[root@netpc.com.cn swoole-4.0.0]# rpm -qf /usr/bin/autoconf
autoconf-2.59-12

升级后搞定。

发表在 服务器 | 标签为 , | 留下评论

【原创】PHP补充API接口数据安全验证加密解密相关问题

用PHP写了这么久api接口,需要总结下关于限制的一些问题。

通常接口有对外或对内情况,下面说下相关能用上的规则:

  • 限制IP、访问频率等,根据什么来判断就看你了。
  • 用户名和密码登陆,验证成功后,生成token,可以有过期限制。
  • sign作用:传过来的数据,根据规则生成sign,与传过来的sign对比。也是相当于验证身份
  • https保护保存数据

以上还不能保证数据安全,有可能你通过接口身份验证后传输数据还是有可能被路由、终端等拦截数据。

这时候可以选择数据加密方式,以下几种常用的:

DES:Data Encrytion Standard(数据加密标准),对应算法是DEA

特点:1. 对称加密 2. 同一个SK(跨平台可能会。。。)

AES:Advanced Encrytion Standard(高级加密标准)

特点:1. 对称加密 2. 一个SK扩展成多个子SK,轮加密(速度快)

RSA:特点: 1. 非对称加密,即:PK与SK不是同一个

2. PK用于加密,SK用于解密

3. PK决定SK,但是PK很难算出SK(数学原理:两个大质数相乘,积很难因式分解)

4. 速度慢,只对少量数据加密

介绍完特别后你知道选择什么了吧?

PHP 的 OpenSSL 扩展中加密的相关函数有:

  • openssl_encrypt()
  • openssl_decrypt()

详细看官方手册:https://www.php.net/manual/zh/function.openssl-encrypt.php

也有直接对外暴露在web上的随便访问毫无限制的对外接口,那???

发表在 服务器 | 标签为 , | 留下评论