设为首页 收藏本站
查看: 871|回复: 0

[经验分享] Linux学习总结(三十七)lamp之禁止php解析 user_agent 访问控制 php相关配置

[复制链接]

尚未签到

发表于 2018-12-12 08:37:20 | 显示全部楼层 |阅读模式
一 禁止php解析
  为了使某些网站更加安全,防止不法之徒上传某类伪装过的恶意***文件,(比如php文件),盗取服务器重要资源,我们要针对一些目录做保护,禁止其解析php
核心配置文件内容


php_admin_flag engine off

  修改虚拟主机配置文件,-t ,graceful 后测试

我们发现将123.php放在其他在位置,可以正常解析,放在upload目录下,直接返回了源码,并未解析。

二访问控制user-agent
  User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。
在具体配置useragent之前我们先看先下curl 访问和浏览器访问的useragent 以及refer 都是什么样子。先用浏览器访问下

"http://ask.apelearn.com/question/17964" 这条就是referer 信息,Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36 这一长串就是useragent 信息
我们用curl命令访问,-e 指定referer -A 指定useragent 可以把lvlinux 理解为某个爬虫信息

curl -x127.0.0.1:80 -e "http://www.baidu.com" -A "lvlinux" 123.com
curl -x127.0.0.1:80 123.com

对比下上面两条访问的日志,我们发现第一条访问记录了referer 百度,和useragent lvlinux 。 第二条记录了一个空的referer,useragent为curl/7.29.0
通过user_agent限制访问, 核心配置文件内容如下



RewriteEngine on
RewriteCond %{HTTP_USER_AGENT}  .*curl.* [NC,OR]
RewriteCond %{HTTP_USER_AGENT}  .*baidu.com.* [NC]
RewriteRule  .*  -  [F]

    NC是不区分大小写,OR是两条语句的逻辑连接符,或者的意思,F是forbidden
  curl -A "123123" 指定user_agent
我们分别执行以下三条curl ,看下结果

curl -x127.0.0.1:80 123.com -I
curl -A "baidu.com" -x127.0.0.1:80 123.com -I

curl -A "sfsdf" -x127.0.0.1:80 123.com -I


三php相关配置
  先来查看下php配置文件位置
我们之前安装完php时拷贝过php的配置文件php.ini
但是我们安装了两个版本的php,如何查看当前apache当前使用的php的配置文件呢,通过浏览器查看phpinfo文件信息,就可以很直观的看到。

下面我们编辑该文件做一些必要的配置
1.禁用某些函数的调用。这样做可以很有效的遏制某些***捣乱。
搜索disabls_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,phpinfor
graceful 后,用浏览器测试phpinfo访问,出现了
Warning: phpinfo() has been disabled for security reasons in /data/wwwroot/www.123.com/345.php on line 2
2 关闭错误信息的页面显示
该错误信息暴露我们的网站目录,我们也不希望他显示,继续编辑配置文件
定义display_errors=off
这时候访问会发现没有任何输出。
3 定义错误日志
为了以后定位访问php解析出现的故障,我们需要给php单独定义错误日志。
搜索log_erros,改成如下
log_errors=on
搜索error_log,指定错误日志位置
error_log=/var/log/php/php_errors.log
再搜索error_reporting,定义要记录的错误日志级别,指的是有选择的记录。
error_reporting = E_ALL & ~E_NOTICE  //根据提示选择不记录notice的格式
4 定义时区
日志配置完成后,搜索下date.timezone 定义下时区,防止一些报错信息。
date.timezone =Asia/Shanghai
5 定义open_basedir
为了很有效的将灾难最小化, 比如我们有一个站点被***攻破,那么为了防止他继续黑入其他网站,
我们很有必要针对单个网站之间设立隔离目录,及时止损。我们发现php.ini里面一个open_basedir
的功能,但是他只能做到对于php总网站的限制。对于单个网站,我们需要在apache虚拟主机配置文件中定义。也就是在对应的虚拟主机,加入相应的配置即可。
为了方便测试,我们设置一个子目录onlyphp说明下它的作用
php_admin_value open_basedir "/data/wwwroot/123.com/onlyphp/:/tmp/"
curl -x127.0.0.1:80 http://123.com/123.php -I

curl -x127.0.0.1:80 http://123.com/onlyphp/123.php -I

  注意,该配置只是针对php的操作,限制php解析,不限制其他html的访问。不过上面的例子仅仅是说明下open_basedir的运作原理,实际应用当中我们当然不这么干,对每一个虚拟主机我们可以配置一个open_basedir ,让其php的解析相互隔离。也就是说对于www.123.com的网站,我们将open_basedir 设置为php_admin_value open_basedir  "data/wwwroot/123.com/:/tmp/" 对于www.abc.com的网站,我们设置为php_admin_value open_basedir "/data/wwwroot/abc.com/:/tmp/" 而不是将数据直接丢到网站根目录wwwroot下。设置/tmp/目录的目的是允许数据缓存,不然没法上传图片等数据。




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-650335-1-1.html 上篇帖子: 44.限定某个目录禁止解析php、限制user_agent、php相关配置 下篇帖子: 四十五、PHP扩展模块安装
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表