4.18 php相关配置,限制user_agent,禁止php解析

禁止php解析

对于使用php语言编写的网站,有一些目录是需要上传文件的,如果网站有漏洞,让***上传了一个用php代写的***,由于网站可以执行php程序,最终会让***拿到服务器权限,为了避免这种情况发生,我们需要把能上传文件的目录直接禁止解析php代码。

<Directory /data/wwwroot/111.com/upload>
php_admin_flag engine off
<FileMatch (.).php(.)>
Order allow,deny
Deny from all
</FileMatch>
</Directory>
这样做可以双保险,既不能解析php,又不能访问。

单纯禁止解析php
curl -x192.168.1.107:80 111.com/upload/123.php
<?php
echo "123.php";(这个结果就是禁止解析php的结果,直接显示了源代码)

限制user_agent

有时候我们网站会受到cc***,它的原理很简单,就是用很多用户的电脑同时访问同一个站点,当访问量达到了一定的层次,站点就会耗尽服务器的资源,从而使之不能正常的提供服务。这种cc***的规律很明显,其中恶意请求的user_agent相同或者相似,那么我们就可以通过限制user_agent发挥防***作用。
具体做法:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} .curl. [NC,OR]
RewriteCond %{HTTP_USER_AGENT} .baidu.com. [NC]
RewriteRule . - [F]
</IfModule>
其中OR表示或者,NC 表示忽略大小写。
RewriteRule .
- [F] 这句表示重写规则被禁止, 其中F表示Forbidden(禁止)

php相关配置

查看php配置文件的位置
/usr/local/php/bin/php -i|grep -i "loaded configuration file"
定义时区
date.timezone 我们可以写Asia/shanghai或者chongqing
安全函数
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
日志相关
error_log, log_errors, display_errors, error_reporting

open_basedir

作用是将网站限定在一个目录里,就算该站点被黑,***也只能在这一个目录下有所作为,而不能操作其他的目录。如果服务器上只有一个站点,那可以在php.ini中设置open_basedir,如果服务器上站点较多,拿在php.ini中设置就不合适了,因为在php.ini中只能定义一次。
具体操作方法:
首先打开PHP的配置文件
vim /usr/local/php/etc/php.ini
然后搜索open_basedir
然后找到open_basedir=
将虚拟主机的(网站)的根目录输入进去。
以上是单一网站的设置
我们还可以针对不同的虚拟主机设定不同的open_basedir
php_admin_value open_basedir "/data/网站根目录的路径/

转载于:https://blog.51cto.com/13067688/2105143

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值