linux服务器下PHPCMS v9 安全配置详解

一、目录权限设置很重要:可以有效防范黑客上传木马文件.

如果通过 chmod 644 * -R 的话,php文件就没有权限访问了。
如果通过chmod 755 * -R 的话,php文件的权限就高了。
所以就需要分开设置目录权限和文件权限:
linux 服务器权限:经常要用到的命令:

find /path -type f -exec chmod 644 {} \; //设置文件权限为644
find /path -type d -exec chmod 755 {} \; //设置目录权限为755
设置完成后,再通过命令:chown root:root * -R 将目录和文件的所有者改为root。
这样就更加安全了。
FTP用户,确定使用的是linux主机。windows需要登录到服务器中设置。
进入到phpcms 安装根目录,选取所有文件:
设置数字值为:755,同时选定:选择递归处理子目录,只应用到目录
同样再选择所有文件,数字值为:644,选择递归处理子目录,只应用到文件
如果设置错了,重新再设置就可以了。

二、Linux find命令 查找可疑的木马文件

查找:30天内被修改的文件
find ./ -mtime -30 -type f -exec ls -l {} \;
找到目录下所有的txt文件
find ./ -name "*.txt" -print
找到目录下所有的txt文件并删除
find ./ -name "*.txt" -exec rm -rf {} \;
找到目录下所有的php文件 并且在30天之类被修改的文件
find ./ -name "*.php" -mtime -30 -typef -exec ls -l {} \;
找到目录下所有的php文件,同时,满足 30天以内,1天之前的
find ./ -name "*.php" -mtime -30 -mtime +1 -type f -execls -l {} \;

三、通过apache配置限定:

1、apache 下 禁止目录执行php

通过目录下面放置 .htaccess文件来限制权限。
该方法会将php文件当做附件并下载。同时,可以通过浏览器访问到文件。

代码如下:

php_flag engine off

使用场景:在下面目录放置

代码如下:

\uploadfile\
\statics\
\html\
\phpsso_server\uploadfile\
\phpsso_server\statics\

2、禁止通过浏览器访问所有文件

通过目录下面放置 .htaccess文件来限制权限。
RewriteEngine on
RewriteRule ^(.*) /index.html
使用场景:
\caches\
\phpsso_server\caches\

3、禁止php跨目录浏览权限配置:

虚拟主机配置样例:

代码如下:

<VirtualHost *:80>
ServerAdmin root@phpip.com
DocumentRoot /data/wwwroot/www
ServerName www.phpip.com
<Directory /data/wwwroot/www>
Options FollowSymLinks
AllowOverride Options FileInfo
Order allow,deny
Allow from all
php_admin_value open_basedir /data/wwwroot/www/:/var/tmp/
DirectoryIndex index.htm index.html index.php
</Directory>
ErrorLog "| /usr/sbin/rotatelogs /data/logs/%m_%d_www.phpip.com-error_log 86400 480"
CustomLog "| /usr/sbin/rotatelogs /data/logs/%m_%d_www.phpip.com-access_log 86400 480" common
</VirtualHost>

4、按天存放apache日志:

参考上面配置文件:

代码如下:

ErrorLog "| /usr/sbin/rotatelogs /data/logs/%m_%d_www.phpip.com-error_log 86400 480"
CustomLog "| /usr/sbin/rotatelogs /data/logs/%m_%d_www.phpip.com-access_log 86400 480" common

时间: 2015-02-22

PHPCMS遭遇会员投稿审核无效的解决方法 原创

今天接到主编那边的反馈,说本站的会员投稿平台,后台无法审核文章了,赶紧看看吧 本来想偷个懒,去度娘那里搜搜,看有相同情况的解决方案没,结果大失所望,虽然也有几个类似的情况,要么没解决,要么就是原因跟本站不同. 得了,毛主席他老人家教导我们,自己动手,丰衣足食! 先找到审核的相关程序页 /phpcms/modules/content/content.php中的pass()方法,检查了下,并无被修改的现象 去审核页面按F12调试,控制台也无报错情况 真是奇了怪了, 查看下源码,发现了这段 <scri

phpcms模块开发之swfupload的使用介绍

正式接触phpcms模块开发后.开发了几个功能模块.其中遇到了需要批量上传图片的问题.于是开始挖掘phpcms里面的swfupload的用法. 在phpcms里面自带的内容类型里面能够直接指定图片组.不过这样的图片组功能并不是我想用的.我需要上传一整个静态的html文件.需要 能够找到一个方法上传整个文件夹.并且能够保留原来的文件名称. 目的总结如下: 1,不改变系统的文件和目录结构. 2,实现多附件上传功能. 3,能够得到上传后的文件夹名称. 在phpcms中自带了附件上传的功能.我想去用sw

php笔记之:初探PHPcms模块开发介绍

由于工作关系,只能暂时放弃对mongodb的研究了 .开始研究PHPcms . 目前为止我已经基本完成了模块的开发.趁着周末来这里做个总结.我发现phpcms写的还不错,不过文档什么的确实不多. 不说废话了.对于phpcms的模块开发.首先要了解模块的目录结构. 我们可以在http://v9.help.phpcms.cn/html/2010/structure_0928/69.html 找到他的目录结构   我们要开发的东东(也就是模块)就在/phpcms/modules/下面 如果没有什么特别

使用PHPCMS搭建wap手机网站

下面给大家讲使用PHPCMS搭建wap手机网站的方法,具体内容请看下文. 首先在phpcms/libs/functions/extention.func.php里面写入判断手机访问的自定义函数 <?php /** * extention.func.php 用户自定义函数库 * * @copyright (C) 2005-2010 PHPCMS * @license * @lastmodify 2010-10-27 */ //判断是否手机访问 function check_wap() { if (

PHPCMS的使用小结

下面我讲讲关于这套系统的加载流程 定义根目录,定义include目录 加载核心文件 配置文件'config.inc.php' 全局函数'global.func.php' 目录操作函数'dir.func.php' url相关函数'url.func.php' 数据输出相关类'output.class.php' 权限类'priv_group.class.php' 时间处理类'times.class.php' 加载语言数组'phpcms.lang.php' 加载数库存类'db_mysql.class.p

window下注册服务的命令小结

1. 描述:     SC 是用于与服务控制管理器通信的命令行程序 .    用法:  sc <server> [command] [service name] <option1> <option2>... 选项 <server> 的格式为 可以键入 "sc [command]"以获得命令的进一步帮助 命令: query---------------查询服务的状态,或枚举服务类型的状态.           queryex--------

Spring Boot Actuator监控端点小结

在Spring Boot的众多Starter POMs中有一个特殊的模块,它不同于其他模块那样大多用于开发业务功能或是连接一些其他外部资源.它完全是一个用于暴露自身信息的模块,所以很明显,它的主要作用是用于监控与管理,它就是:spring-boot-starter-actuator. spring-boot-starter-actuator模块的实现对于实施微服务的中小团队来说,可以有效地减少监控系统在采集应用指标时的开发量.当然,它也并不是万能的,有时候我们也需要对其做一些简单的扩展来帮助我们

基于BootStrap Metronic开发框架经验小结【二】列表分页处理和插件JSTree的使用

在上篇基于BootStrap Metronic开发框架经验小结[一]框架总览及菜单模块的处理,介绍了Bootstrap开发框架的一些基础性概括,包括总体界面效果,以及布局.菜单等内容,本篇继续这一主题,介绍页面内容常用到的数据分页处理,以及Bootstrap插件JSTree的使用. 在数据的界面显示当中,表格数据的展示以及分页是非常常见的处理操作,利用Bootstrap的样式布局,以及JQuery的Ajax数据处理,就能很好实现数据的动态展示和分页处理. 1.列表展示和分页处理1)数据的列表展示

phpStudy2016 配置多个域名期间遇到的问题小结

第一步 在C:\Windows\System32\drivers\etc下的hosts文件下添加 第二步找到Apache 下的httpd.conf 文件 打开,去掉171行前边的# 第三步在apache的配置文件vhosts.conf中,配置以下内容 重启Apache就可以....域名配好了..此时又有问题了 浏览器出这样的页面 但是当你输入www.test.com/index.php时就可以访问index.php的程序需要写完整路径....怎么破...将第三步中的18行注释掉 或把option

CodeIgniter使用phpcms模板引擎

CodeIgniter很适合小站点应用开发,但是它自带的view功能可能会给不懂PHP的前端人员带来麻烦. 相比之下phpcms的view模板解析就强大多了,所以这里就把PHPCMS的模板解析功能剥离出来,加到PHPCMS上.首先在CodeIgniter libraries中 增加 template_cache.php 复制代码 代码如下: <?php if (!defined('BASEPATH')) exit('No direct script access allowed'); /** *

PHPCMS V9 添加二级导航的思路详解

今天看了看phpcms 写到二级导航时发现点问题,查询导航栏的信息时返回的$r[arrchildid]与自己想象的不符,文档上说是返回子栏目id但是却有些不同. 开始的思路: <ul class="nav navbar-nav"> <li class="active"><a href="{siteurl($siteid)}">首页</a></li> {pc:content action=

JavaScript正则表达式小结(test|match|search|replace|split|exec)

学JavaScript正则的好文一篇:http://www.cainiao8.com/web/js_note/js_regular_expression.html test:测试string是否包含有匹配结果,包含返回true,不包含返回false. <script type="text/javascript"> var str = "bbs.byr.cn"; var reg = /b/; var ret = reg.test(str); alert(r

正则表达式小结篇

正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式.该模式描述在查找文字主体时待匹配的一个或多个字符串.正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配. 下面小编给大家总结了些关于正则表达式知识点,具体内容如下所示: 1.元字符 [拥有特殊含义的元字符]   \d -> 匹配一个0-9的数字,相当于[0-9],和它相反的是\D ->匹配一个除了0-9的任意字符   \w -> 匹配一个0-9.a-z.A-Z._的数字或字符,相当于[0

python字符类型的一些方法小结

int 数字类型 class int(object): """ int(x=0) -> int or long int(x, base=10) -> int or long Convert a number or string to an integer, or return 0 if no arguments are given. If x is floating point, the conversion truncates towards zero. If