php

wordpress评论自定义验证码

星期日, 九月 13th, 2020 | php, wordpress | 没有评论

人总是难以改变的动物,一直用wordpress习惯了,不想再折腾静态博客网站了,继续跟随升级到5.5.1版本.

现在wordpress的评论的机器人真是做的好智能,一些常用的评论插件也基本上已经被攻破.

为了防止垃圾评论的骚扰,发现自制的验证码能拒绝这些评论机器人.

看样还是个性化的参数没有多大价值去处理的原因,非技术问题.

如下自制验证码:

管理员帐号登录:

修改下面的几个文件即可:

1.修改主题文件:(评论)comments.php

在下面新增一行即可,验证码的名称(authcode) 随便起个即可

 
<div id="commentform">
<form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform">

新增的行:

<label for="authcode">验证码: (Lee)</label>
<input type="text" name="authcode" id="authcode" class="text" value="" placeholder="请输入Lee" size="10" tabindex="1" />

2.登录到机器上 修改 wp-comments-post.php 文件 添加下面的代码即可

 
if($_POST['authcode']!='Lee'){
echo "<script>alert('验证码错误')</script>";
echo "<script>window.history.go(-1)</script>";
exit;
}

小记:其实可以写成一个更好的,做个写个函数注入到其中更好.懒的写了.

Tags: ,

PHP7.2 下mcrypt_module_open() 无法使用的解决方法

星期五, 二月 28th, 2020 | php | 没有评论

php版本升级到7.2后,其他看下来没有什么问题,在小程序的授权上,出现了错误,无法找到mcrypt_module_open的函数.

查询网上方法修复之.

主要是使用 openssl_decrypt来替换解决,解密协议为AES-128-CBC,

如果无法解析可以尝试AES-256-CBC,本人使用AES-128-CBC正常解析的

微信那边解密错误会返回错误码-41003,则解析错误.

1.修改文件wxBizDataCrypt.php
› Continue reading

Tags: ,

centos7下的php-fpm的优化

星期四, 十月 3rd, 2019 | linux, php | 没有评论

云主机只有1C1G的内存,既要运行wordpress还要运行一个java程序及mysql,内存实在吃紧,运行1天发现mysql内存不足被杀掉,随优化之。

1.优化mysql参数

[myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M
read_buffer = 4M
write_buffer = 4M

详情可以参考 https://www.pomelolee.com/1304.html

2.php-fpm优化,减少php-fpm的数量

配置文件地址:/etc/opt/remi/php70/php-fpm.conf

实际修改配置文件:/etc/opt/remi/php70/php-fpm.d/www.conf

systemctl stop php70-php-fpm.service

pm = dynamic
pm.start_servers = 2
pm.min_spare_servers = 2
pm.max_spare_servers = 5

systemctl restart php70-php-fpm.service

Tags: , ,

让PHP7兼容老版本的php5.5.x或者5.6下的mysql_connect的处理代码

星期一, 九月 9th, 2019 | linux, php | 没有评论

1.昨天折腾了下服务器,把系统从centos6.5更新到7.6,也把对应的php版本升级到了php7.0.x系列

2.好多年没有再怎么写php代码了,以前写的也是在php5.5.x的版本写的,升级后发现程序无法使用,郁闷ing

3.跟踪下 /var/opt/remi/php70/log/php-fpm 下的 www-error.log发现是 php7已经不支持mysql_connect

4.网上找了下兼容的代码新增了 mysql_num_rows的函数的处理,我以前的老代码又可以欢快的跑起来了,记录下,也方便需要的朋友

$dbhost = DATA_HOST;
$dbport = 3306;
$dbuser = DATA_USERNAME;
$dbpass = DATA_PASSWORD;
$dbname = DATA_NAME;
if(!function_exists('mysql_connect')){
    function mysql_connect($dbhost, $dbuser, $dbpass){
        global $dbport;
        global $dbname;
        global $mysqli;
        $mysqli = mysqli_connect("$dbhost:$dbport", $dbuser, $dbpass, $dbname);
        return $mysqli;
        }
    function mysql_select_db($dbname){
        global $mysqli;
        return mysqli_select_db($mysqli,$dbname);
        }
    function mysql_fetch_array($result){
        return mysqli_fetch_array($result);
        }
    function mysql_fetch_assoc($result){
        return mysqli_fetch_assoc($result);
        }
    function mysql_fetch_row($result){
        return mysqli_fetch_row($result);
        }
    function mysql_query($query){
        global $mysqli;
        return mysqli_query($mysqli,$query);
        }
    function mysql_escape_string($data){
        global $mysqli;
        return mysqli_real_escape_string($mysqli, $data);
        }
    function mysql_real_escape_string($data){
        return mysql_real_escape_string($data);
        }
    function mysql_close(){
        global $mysqli;
        return mysqli_close($mysqli);
        }
    function mysql_num_rows($result){
        return mysqli_num_rows($result);
    }
}

Tags: , ,

php-fpm的php参数的配置和启动

星期二, 九月 4th, 2018 | php | 没有评论

0.启动:(基于php5.5.20)

/usr/local/webserver/php/sbin/php-fpm -D

1.配置文件路径
/usr/local/webserver/php/etc
重要的配置文件:
php.ini 及php-fpm.conf

2.说明如下:php.ini

######避免PHP信息暴露在http头中
expose_php = Off
 
######避免暴露php调用mysql的错误信息
display_errors = Off
 
######在关闭display_errors后开启PHP错误日志(路径在php-fpm.conf中配置)
log_errors = On
 
######设置PHP的扩展库路径
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20141001/"
 
######设置PHP的opcache和mysql动态库
zend_extension=opcache.so
extension=mysqli.so
extension=pdo_mysql.so
 
######设置PHP的时区
date.timezone = PRC
 
######开启opcache
[opcache]
; Determines if Zend OPCache is enabled
opcache.enable=1
 
######设置PHP脚本允许访问的目录(需要根据实际情况配置)
;open_basedir = /data/nginx/html;

3. 配置php-fpm.conf 保持

Tags:

使用Sublime Text3做PHP开发配置

星期四, 二月 9th, 2017 | php | 没有评论

HP开发时,笔者用过EditPlus3、Nodpad++、Vi、Vim和Netbeans,尝试过PhpStorm、PHP IDE、Atom,但即轻巧又强大的,首推Sublime Text了。

Sublime有一些技巧,用熟了是神器,不熟就是砖头

以下我们讲讲在PHP开发中常用的Sublime技巧。

1 下载安装

官网:http://www.sublimetext.com/

下载最新版本,然后按提示安装。

› Continue reading

Tags:

Sublime Text 3的脚本语言开发的常用插件

星期四, 二月 9th, 2017 | php | 没有评论

轻量级的Sublime Text 3的做开发做php,js,html,css等开发的常用插件收集

1.Pack­age Con­trol (https://sublime.wbond.net)

安装Package Control

Package Control是Sublime基础的、必备的包管理,以后所有插件都是通过它来安装的。

打开Sublime,点击菜单 View > Show Console(快捷键 Ctrl+`)打开命令控制台,输入下面的内容:

import urllib.request,os,hashlib; h = '2915d1851351e5ee549c20394736b442' + '8bc59f460fa1548d1514676163dafc88'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)

然后回车,等待一会就可以安装完成了。

更多指导:https://sublime.wbond.net/installation

2.Sub­lime­CodeIn­tel (https://github.com/SublimeCodeIntel/SublimeCodeIntel)

提供代码提示,函数、对象或变量名称等。还可以提示对象或类中哪些方法和变量。基于komodo codeintel开发,虽然有时会有一些问题,但是大多时候是没问题的。
› Continue reading

Tags:

nginx和php隐藏版本号信息

星期四, 十二月 29th, 2016 | php | 没有评论

nginx 隐藏版本号 配置nginx.cnf server_tokens off; 即可

1
2
3
4
http {
    # ...省略一些配置
    server_tokens off;
  }

2.php 的版本信息 会在 HTTP头,以类似X-Powered-By: PHP/7.0.14 这种形式
在php.ini 中关闭 expose_php = Off 即可

1
2
3
4
5
6
7
8
9
10
;;;;;;;;;;;;;;;;;
; Miscellaneous ;
;;;;;;;;;;;;;;;;;
 
; Decides whether PHP may expose the fact that it is installed on the server
; (e.g. by adding its signature to the Web server header).  It is no security
; threat in any way, but it makes it possible to determine whether you use PHP
; on your server or not.
; http://php.net/expose-php
expose_php = On

对应改为记得重启下php 和对应的nginx

Tags: ,

解决ThinkPHP路由404问题的 nginx 配置文件

星期一, 十一月 21st, 2016 | php | 没有评论

完美支持ThinkPHP的四种url模式, 静态文件不会再跑一次fastcgi浪费资源

ThinkPHP的几种url模式,如果nginx 不做任何配置,代理到php都是返回404错误,要解决也很简单

做好nginx的配置 做到动静分离和路由重写即可,配置如下:

其他日志配置等就不再贴出
› Continue reading

Tags: ,

wordpress WP_Image_Editor_Imagick 指令注入漏洞之临时修复

星期四, 五月 19th, 2016 | php, wordpress | 2 Comments

imagick的漏洞最近闹的沸沸扬扬,我自己一直也没有特别关注,主要是我也没有对应的使用此功能做在线web图片的处理.

有用的情况下也是之前的一个内网项目做过图片的快速处理.

耐不住阿里云的安骑士的 友情提醒我的此漏洞,我惶恐的去查了下服务器的配置根本就没有发现 imagick 的扩展.

具体PHP支持开启 imagick 的扩展可以参照这篇文章 Centos 下编译PHP图片扩展库 ImageMagick、MagickWandForPHP、imagick

但是漏洞还是要修复的,要不老是 邮件 短信提醒的多可怕

提示如下:
漏洞名称:wordpress WP_Image_Editor_Imagick
指令注入漏洞补丁编号:4547205
补丁文件:../wp-includes/media.php
补丁来源:云盾自研
更新时间:2016-05-19 11:06:18
漏洞描述:该修复方案为临时修复方案,可能存在兼容性风险,为了防止WP_Image_Editor_Imagick扩展的指令注入风险,将wordpress的默认图片处理库优先顺序改为GD优先,用户可在/wp-includes/media.php的_wp_image_editor_choose()函数中看到被修改的部分

解决方法:
其实提示的临时修复方式也很简单,我自己没有购买付费服务就按照他的提示自己手工修复下,然后验证下,OK 显示已经修复

1
2
3
4
 $implementations = apply_filters( 'wp_image_editors', array( 'WP_Image_Editor_GD', 'WP_Image_Editor_GD' ) );
 
 //注释掉下面一行,换成上面一行即可,其实就是关闭了Imagick的作为备选项的功能了 easy吧
 //$implementations = apply_filters( 'wp_image_editors', array( 'WP_Image_Editor_Imagick', 'WP_Image_Editor_GD' ) );

Tags: , ,

Search

文章分类

Meta