核心配置文件内容php
<Directory /data/wwwroot/110.com/upload> php_admin_flag engine off </Directory>
curl测试时直接返回了php源代码,并未解析程序员
加一层 FilesMatch 的限制更好, 若是不加, 则会访问到原代码shell
为了防止cc攻击apache
user_agent能够理解为浏览器标识浏览器
核心配置文件内容php7
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_USER_AGENT} .*curl.* [NC,OR] RewriteCond %{HTTP_USER_AGENT} .*baidu.com.* [NC] RewriteRule .* - [F] </IfModule>
F Forbidden的意思curl
NC 忽略大小写, OR 或者 , 匹配1or2socket
curl -A "123123" 指定user_agent函数
cul 经常使用选项:测试
-A 指定 user_agent
-x 至关于省略了hosts
-I 只返回状态码, 不返回内容
-e 指定 referer , 必须 http:// 开头 //从网页1访问到网页2, 网页2的referer就是"网页1的地址"
查看php配置文件位置
此方法不是很准确, 最正确的方法是去你的网站底下建立一个phpinfo的php文件, 经过php文件查看
/usr/local/php7/bin/php -i|grep -i "loaded configuration file"
php.ini 经常使用配置
date.timezone=Asia/Shanghai
禁用危险函数, 搜索disable_functions , phpinfo 本身加上 disable_functions=eval,assert,popen,passthru,escapeshellarg,escapeshellcmd,passthru,exec,system,chroot,scandir,chgrp,chown,escapeshellcmd,escapeshellarg,shell_exec,proc_get_status,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,leak,popepassthru,stream_socket_server,popen,proc_open,proc_close,phpinfo
display_errors=off //是否在页面上显示错误 若是否, 需定义log_errors
log_errors=on //错误日志是否开启 若是是, 则需定义 log_errors 和 error_log , error_reporting
error_log = /tmp/php_errors.log //定义错误日志的路径
error_reporting=E_ALL & ~E_NOTICE //错误日志记录的级别,
若是程序员在php代码中定义了错误日志不输出, 则也不会输出错误日志
定义错误日志完成后要用: /usr/local/apache2.4/bin/apachectl graceful ,而后会生成错误日志文件 /tmp/php_errors.log
保险的话也能够本身先建立错误日志文件并设置权限:
touch /tmp/php_errors.log
chmod 666 /tmp/php_errors.log
日志是以deamon进程的身份去进行的, 有时候定义了一个错误日志, 但日志始终没有生成, 要检查定义了错误日志的所在目录有没有写权限,并且写文件人它是deamon