php解压rar文件 php打包zip文件 源码php_rar.dll pclzip示例
阅读全文>
标签:php zip压缩, php_rar.dll | 发布在 php | 一条评论 »
(1)打开php的安全模式
php的安全模式是个非常重要的内嵌的安全机制,能够控制一些php中的函数,比如system(),同时把很多文件操作函数进行了权限控制,也不允许对某些关键字文件的文件,比如/etc/passwd,但是默认的php.ini是没有打开安全模式的,我们把它打开:
safe_mode = on
(2)用户组安全
当safe_mode打开时,safe_mode_gid被关闭,那么php脚本能够对文件进行访问,而且相同组的用户也能够对文件进行访问。而且相同组的用户也能够对文件进行访问。
建议设置为:
safe_mode_gid = off
如果不进行设置,可能我们无法对我们服务器网站目录下的文件进行操作了,比如我们需要对文件进行操作的时候。
(3)安全模式下执行程序主目录
如果安全模式打开了,但是却是要执行某些程序的时候,可以指定要执行程序的主目录:
safe_mode_exec_dir = /usr/bin
一般情况下是不需要执行什么程序的,所以推荐不要执行系统程序目录,可以指向一个目录:然后把需要执行的程序拷贝过去,比如:
safe_mode_exec_dir = /temp/cmd
但是,我更推荐不要执行任何程序,那么就可以指向我们网页目录:
safe_mode_exec_dir = /usr/www
(4)安全模式下包含文件
如果要在安全模式下包含某些公共文件,那么就修改一下选项:
safe_mode_include_dir = /usr/www/include/
其实一般php脚本中包含文件都是在程序自己已经写好了,这个可以根据具体需要设置。
(5)控制php脚本能访问的目录
使用open_basedir选项能够控制PHP脚本只能访问指定的目录,这样能够避免PHP脚本访问不应该访问的文件,一定程序上显示了phpshell的危害,我们一般可以设置为只能访问网站目录:
open_basedir = /usr/www
(6)关闭危险函数
如果打开了安全模式,那么函数禁止是可以不需要的,但是我们为了安全还是考虑进去。比如,我们觉得不希望执行包括system()等在内的执行明了的php函数,或者能够查看php信息的phpinfo()等函数,那么我们就可以禁止它们:
disable_functions = system, passthru, exec, shell_exec, popen, phpinfo, escapeshellarg, escapeshellcmd, proc_close, proc_open, dl
如果你要禁止任何文件和目录的操作,那么可以关闭很多文件操作
disable_functions = chdir, chroot, dir, getcwd, opendir, readdir, scandir, fopen, unlink, delete, copy, mkdir, rmdir, rename, file, file_get_contents, fputs, fwrite, chgrp,chmod, chown
以上只是列了部分比较常用的文件处理函数,你也可以把上面执行命令函数和这个函数结合,就能给抵制大部分的phpshell了。
(7)关闭php版本信息在http头中的泄露
我们为了防止黑客获取服务器中php版本的信息,可以关闭该信息泄露在http头中:
expose_php = off
比如黑客在 telnet www.girlcoding.com:80 的时候,那么将无法看到PHP的信息
(8)关闭注册全局变量
在PHP中提交的变量,包括使用POST或者GET提交的变量,都将自动注册为全局变量,能够直接访问,这是对服务器非常不安全的,所以我们不能让它注册为全局变量,就把注册全局变量选项关闭:
register_globals = off
当然,如果这样设置了,那么获取对应变量的时候就要采取合理方式,比如获取GET提交的变量var,那么就要用$_GET['var']来进行获取,这个php程序员要注意。
(9)打开magic_quotes_gpc来防止SQL注入
SQL注入是非常危险的问题,小则网站后台被入侵,重则整个服务器沦陷,所以一定要小心。php.ini中有一个设置:
magic_quotes_gpc [...]
阅读全文>
由于主要是文本文件,很适合压缩,因此尝试修改了一个php配置参数
全站启用ob_gzhandler压缩
output_handler = ob_gzhandler
一个网页原来640k,压缩后只有58k
经过几天的观察,在IP和PV数量基本稳定的情况下,流量消耗下降一半多
但是内存占用较多,而且还使用了系统swap,不是好现象,如果内存较多的情况下可以使用此功能
阅读全文>
标签:ob_gzhandler | 发布在 php | 没有评论 »
第一部分
在Linux中可以将一部分内存mount为分区来使用,通常称之为RamDisk。
RamDisk有三种实现方式:
第一种就是传统意义上的,可以格式化,然后加载。
这在Linux内核2.0/2.2就已经支持,其不足之处是大小固定,之后不能改变。
为了能够使用Ramdisk,我们在编译内核时须将block device中的Ramdisk支持选上,它下面还有两个选项,一个是设定Ramdisk的大小,默认是4096k;另一个是initrd的支持。
如果对Ramdisk的支持已经编译进内核,我们就可以使用它了:
查看一下可用的RamDisk,使用ls /dev/ram*
首先创建一个目录,比如test,运行mkdir /mnt/test;
然后对/dev/ram0 创建文件系统,运行mke2fs /dev/ram0;
最后挂载 /dev/ram0,运行mount /dev/ram /mnt/test,就可以象对普通硬盘一样对它进行操作了。
更详细的内容可以参考: http://www.linuxfocus.org/ChineseGB/November1999/article124.html [...]
阅读全文>
网上搜集了些实例
正则表达式是一个查询的字符串,它包含一般的字符和一些特殊的字符,特殊字符可以扩展查找字符串的能力,正则表达式在查找和替换字符串的作用不可忽视,它能很好提高工作效率。
EditPlus的查找,替换,文件中查找支持以下的正则表达式:
Expression Description
\t Tab character.
\n New line.
. Matches any character.
| Either expression on its left and right side matches the target string.
For example, “a|b” matches “a” and “b”.
[] Any of the enclosed characters may match the target character.
For example, “[ab]” matches “a” and “b”. “[0-9]” matches any digit.
[^] None of the enclosed characters may match the [...]
阅读全文>
标签:editplus | 发布在 php | 没有评论 »
mysql 命令行show processlist;
查看进程
show processlist\G;
则显示完整进程信息
杀死进程 kill 进程ID 就可以了
阅读全文>
标签:show processlist | 发布在 php | 没有评论 »
1、scp在建立连接中是需要密码认证的,所以我们第一步就是添加ssh公匙。
ssh终端运行
ssh-keygen -t rsa
结果如下
Generating public/private rsa key pair.
Enter file in which to save the key (/home/.username/ssh/id_rsa):#回车
Enter passphrase (empty for no passphrase):#回车
Enter same passphrase again:#回车
Your identification has been saved in /home/.username /.ssh/id_rsa.
Your public key has been saved in /home/.username /.ssh/id_rsa.pub.
The key fingerprint is:
38:25:c1:4d:5d:d3:89:bb:46:67:bf:52:af:c3:17:0c username@localhost
Generating RSA keys:
Key generation complete.
会在用户目录~/.ssh/产生两个文件,id_rsa,id_rsa.pub
2.是把本地(10.1.1.1)主机上的id_rsa.pub文件拷贝到远程linux(10.1.1.2)主机的root用户主目录下的.ssh目录下,并且改名为authorized_keys
即:
scp /root/.ssh/id_rsa.pub root@10.1.1.2:/root/.ssh/authorized_keys
这样在本地linux(10.1.1.1)主机上使用scp命令复制文件到远程linux主机(10.1.1.2)上将不提示输入密码了,直接复制了。反之亦然!
(为了安全建议将authorized_keys属性变更为600)
3.创建一个sh文件 vi backup.sh
#!/bin/bash
cd /var/www/html/backup
#定义备份名字 bbs和home 设定每月备份一次 备份完就删除
BbsBakName=Bbs_$(date +”%Y%m%d”).tar.gz
#打包Ningyuan文件
tar [...]
阅读全文>
举个例子,大家更好的理解敏捷是如何被实践的,我们说一说运用敏捷方法完成一次家庭出游计划:
这有一家四口人要出游了,首先敏捷规划,我们大致规划出我们去几天呢?要去什么地方? 一家几口人出行? 坐什么交通工具呢? 而还有个终极目标:那就是保证大家的绝对愉悦,增进家人感情和安全按时的返回。
大致目标规划好了就可以开展了,并且呢,我们将这次出行定为4天,第一天主要完成去的工作,第二三天在目的地玩耍,第四天返回。
在行程中了,我们虽然规划了大致方向,但是可能遇到堵车啦、修路啦等突发事件,于是我们必要情况下要选择其他路线,还有,你的stakeholder们可能有许多新点子,比如你的孩子希望在河边停下来看看风景啦,你的妻子希望在经过一座城市的时候进去那里的博物馆参观啦。总之、你的行程、事件、速度都可能被突发情况所影响。而随着调整的过程,仍然达到满足大家开开心心、安全按时返回的目标就对了。
最后,值得提醒,要合理安排休息时间,保证项目进展的可持续性。
这就是个很好运用敏捷的例子。
阅读全文>