重燃你的PHP安全之火.pdf,读《重燃你的php之火》总结笔记

1.文件包含变量导致远程文件包含

include ("$cfgdir/site${site}.php"); //把$cfgdir 这个路径里的site${site}.php 包含进来

可以把变量$site 指定远程文件http://evil.com/cmd.gif 去调用,也可以是本地的一个文件

解决方案:

php.ini 里的allow_url_fopen 设为off 禁止远程使用文件

2.文件目录列表

目录列表,下载重要文件

解决方案:

open_base_dir 禁止使用目录列表,或每个目录下都存放一个index.html,推荐第一种

3.文件操作函数导致源代码泄漏(fopen(),file(),readfile(),openfile())

$articlearray=openfile("$dbpath/$fid/$tid.php"); //打开$dbpath/$fid 这个路径的$tid.php 文件

$topic_detail=explode("|",$articlearray[0]); //用分割符|读出帖子的内容

构造/read.php?fid=123&tid=../index 可以查看上级index.php源代码

fwrite() 写入一句话***

unlink() 传入任意文件,删除任意文件

解决方案:

过滤特殊字符

4.任意代码执行

eval(),preg_replace(),exec(),system(),popen(),proc_open(),proc_close()

提交可执行代码和系统命令

解决方案:

使用escapeshellarg()或escapeshellcmd()函数过滤

5.特殊字符过滤

../ win路径隐患

..\ win和linux路径隐患

< > 跨站脚本***xxs

'?? 执行系统命令

; | 截断程序流程

6.php的一些安全配置参数

safe_mode_gid = On? //开启安全模式,会禁止系统命令执行函数

register_globals = Off //关闭全局变量,防止变量覆盖漏洞

php_admin_value open_basedir /usr/local/apache/htdocs //限制php文件操作目录为网站根目录

allow_url_fopen = Off //关闭远程文件打开功能,防止include('')文件包含一句话***

php_flag engine off

#如果是php3换成php3_engine off

#防止读取任意文件和执行任意命令,限制上传目录权限

open_basedir = "/usr/local/apache/htdocs/" #限制允许操作的父目录

#命令执行漏洞可以用escapeshellcmd()函数过滤传入的命令参数,后再使用,杜绝命令执行漏洞

error_reporting = E_ALL & ~E_NOTICE //屏蔽警告信息

display_errors = On //屏蔽错误信息

log_errors = On? //开启错误日志

error_log = /usr/local/apache/logs/php_error.log //错误日志存放目录

disable_functions = phpinfo, get_cfg_var //禁用一些危险函数可以放在这里

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/430983.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux 固定ip_linux固定IP

在新安装的Linux系统命令行下&#xff0c;敲入&#xff1a;ifconfig,显示如下界面。上面这张图显示网卡没有启动&#xff0c;那么我们敲入代码&#xff1a;ifup eth0启动网卡。网卡启动后&#xff0c;我们可以看出&#xff0c;IP地址和网关等其他信息都已经出现。但是我们需要的…

C#正则表达式开源工具

先交代一下背景&#xff0c;最近工作中经常用到正则表达式&#xff0c;而正则表达式这个东西我个人觉得很鸡肋&#xff0c;不用吧&#xff0c;有些功能实现起来会很麻烦。用吧&#xff0c;又不是说工作中经常用到&#xff0c;只是有时候有些需要求用到而已。但是正则表达式只要…

python中代理模式分为几种_Python设计模式之代理模式实例详解

本文实例讲述了Python设计模式之代理模式。分享给大家供大家参考&#xff0c;具体如下&#xff1a;代理模式(Proxy Pattern):为其他对象提供一种代理以控制对这个对象的访问#!/usr/bin/env python# -*- coding:utf-8 -*-__author__ Andy"""大话设计模式设计模式…

php编译称opcode文件,PHP源码保护和性能加速

什么是Opcache?每一次执行 PHP 脚本的时候&#xff0c;该脚本都需要被编译成字节码&#xff0c;而 Opcache 可以对该字节码进行缓存&#xff0c;这样&#xff0c;下次请求同一个脚本的时候&#xff0c;该脚本就不需要重新编译&#xff0c;这极大节省了脚本的执行时间&#xff…

PHP的pm、pm.max_requests、memory_limit

1、php-fpm.conf中的pm pm是来控制php-fpm的工作进程数到底是一次性产生固定不变&#xff08;static&#xff09;还是在运行过程中随着需要动态变化&#xff08;dynamic&#xff09;。众所周知&#xff0c;工作 进程数与服务器性能息息相关&#xff0c;太少则不能及时处理请求&…

结构体数组排序

要求&#xff1a;结构体变量中有两个数据&#xff0c;一个是index&#xff0c;另一个是max 按照index的从小到大的顺序排序。 struct student { int index; double max; }seq[length]; void _seq() {int i,j,k,tmp;double tmp_2;for(i0;i<length;i){ki;for(ji1;j<length;…

9553下载站java,java se development kit11最新版 64位

java se development kit11&#xff0c;简称java11&#xff0c;是一款专门进行java开发的编程软件&#xff0c;这款软件还拥有applet和组件的开发环境等操作&#xff0c;是程序员们进行java开发的飞铲不错软件&#xff0c;如果你喜欢这款软件&#xff0c;那就来下载基本介绍自从…

python源码编译 mingw_在windows上用gcc(mingw32)从命令行编译Cython扩展

我正在尝试在win32上测试一个小的cython模块&#xff0c;但是我在构建它时遇到了困难。在文件名为linalg_赛顿.pyx包括以下内容&#xff1a;from __future__ import absolute_import, division, print_functionimport numpy as npcimport numpy as npimport cython#cython.boun…

php ldap支付,php – 实现LDAP合规性

我正在专门研究一个包含联系人和其他数据的php Web应用程序.我想知道使用LDAP协议将这些数据提供给外部程序有多难.那里有专门的工具吗&#xff1f;我真的找不到任何东西,但我无法想象我是第一个想到这一点的人.编辑1&#xff1a;我正在寻找的是让应用程序(如邮件客户端)能够使…

java sleep方法_一文搞懂 Java 线程中断!

在之前的一文《如何”优雅”地终止一个线程》详细说明了 stop 终止线程的坏处及如何优雅地终止线程&#xff0c;那么还有别的可以终止线程的方法吗&#xff1f;答案是肯定的&#xff0c;它就是我们今天要分享的——线程中断。下面的这断代码大家应该再熟悉不过了&#xff0c;线…

java 观察者模式_图解Java设计模式之观察者模式

图解Java设计模式之观察者模式天气预报项目需求天气预报设计方案 1 - 普通方案观察者模式&#xff08;Observer&#xff09;原理观察者模式解决天气预报需求观察者模式在JDK应用的源码分析天气预报项目需求1&#xff09;气象站可以将每天测量到的湿度、温度、气压等等以公告的形…

matlab中mapshow,函数式编程 - MATLAB中的Map函数?

函数式编程 - MATLAB中的Map函数&#xff1f;我对MATLAB没有地图功能感到有些惊讶&#xff0c;所以我自己一起攻击了一个&#xff0c;因为它是我无法生存的东西。 那里有更好的版本吗&#xff1f; 有没有一个有点标准的MATLAB函数式编程库我缺少&#xff1f;function results …

linux 定时java程序,Linux操作系统上定时运行Java程序的方法

运行crontab -e编辑一个job。例如0 30 * * * /home/your_login/bin/java_PRogram | | | | | | | | | | | | | | —day of the week (0-6 with 0Sunday). | | | —— month of the year (1-12), | | |_____day of the month (1-31), | | | |____hour (0-23), | minute (0-59),更…

怎么在同一页中分页_分库分表业界难题,跨库分页的几种常见方案

为什么需要研究跨库分页&#xff1f;互联网很多业务都有分页拉取数据的需求&#xff0c;例如&#xff1a;(1)微信消息过多时&#xff0c;拉取第N页消息&#xff1b;(2)京东下单过多时&#xff0c;拉取第N页订单&#xff1b;(3)浏览58同城&#xff0c;查看第N页帖子&#xff1b;…

content add tpl.php,phpcms后台批量上传添加图片文章方法详解(一)

注&#xff1a;以下所有代码中&#xff0c;红色部分为增加部分。一、在后台增加批量添加按钮打开“phpcms\modules\content\templates\content_list.tpl.php”文件搜索“$category[‘catname‘]));?>”在这句话的后天的添加&#xff1a;a echo"" href":;&q…

sap 供应商表_财务人员学习SAP的路线图

有许多网友在公众号给我们留言&#xff0c;咨询财务人员学习SAP的事情&#xff0c;如何才能快速掌握SAP&#xff0c;有没有捷径什么的。今天就给大家分享一下财务人员学习SAP的经验&#xff0c;希望能够为财务人员揭开SAP神秘的面纱&#xff0c;学习SAP少走弯路。刚接触SAP的财…

nodejs搭配phantomjs highcharts后台生成图表

简单分享一下&#xff0c;后台使用nodejs结合highcharts、phantomjs生成报表图片的方法。这主要应用在日报邮件。 主要参考以下资料&#xff1a; http://www.highcharts.com/component/content/article/2-news/52-serverside-generated-charts#phantom_usagehttps://bitbucket.…

mysql4函数,mysql笔记4_函数_MySQL

常用函数&#xff1a;concat 连接函数 Lower 转小写 upper 转大写 Length 长度 substr 子串 now 当前时间 Year 当前年份...流程函数&#xff1a;ifnull(column,result1,result2) 判定字段为空则返回result2&#xff0c;不为空则result1。case...when...then...else...end 分支…

python实战扫码下载_实例:用 Python 做一个扫码工具

原标题&#xff1a;实例&#xff1a;用 Python 做一个扫码工具来自公众号&#xff1a; 新建文件夹X链接&#xff1a;https://blog.csdn.net/ZackSock/article/details/108610957Python实现扫码工具二维码作为一种信息传递的工具&#xff0c;在当今社会发挥了重要作用。从手机用…

前端小问题4

爱、喜悦、和平。 1、文字一个一个显示 js代码 <script type"text/javascript">window.οnlοadfunction(){var story document.getElementById(sto);var s document.getElementById(show);var a story.innerHTML.slice("");var i 0;timersetInt…