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 //禁用一些危险函数可以放在这里

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

  1. 用计算机弹现在最火的英文歌,抖音最火的英文歌曲排行榜,2018抖音最火的英文歌(80首)...

    抖音上的音乐有很多真的非常好听,不管是翻唱也好,BMG也好,抖音真的是带火了非常多的英语歌曲,小编今天就来给大家搜罗2018抖音最火的英文歌,抖音最火的英文歌曲排行榜,你值得拥有. 抖音最火的英文歌曲 ...

  2. MySQL事务的四种隔离级别,mysql中的不可重复读和幻读的区别,Repeatable read可重复读隔离级别下怎么不存在幻读问题?

    1. 事务的隔离级别 1.1 read uncommited:读未提交.一个事务读到了另一个事务未提交的脏数据,称之为脏读. 1.2 read commited:读已提交.解决了脏读问题,但当前事务两 ...

  3. php msgid排重,如何应用php数组对百万数据停止排重

    如何应用php数组对百万数据停止排重 如何应用php数组对百万数据停止排重 在往常的工作中,常常接到要对网站的会员停止站内信.手机短信.email停止群发信息的告诉,用户列表普通由别的同事提供,当中难 ...

  4. java重入锁 自旋锁_java 自旋锁(可重入且无死锁)

    java自旋锁 的实现原理:如果自旋锁被另外一个线程对象持有,那么当前获取锁的线程将陷入while循环等待,直到那个持有自旋锁的线程对象释放它所持有的自旋锁,那么那些想要获取该自旋锁的线程对象 将会有 ...

  5. dubbo是长连接还是短连接_重疾险交费年限长短区别是什么?重疾险交费年限长还是短的好?...

    ​随着人们对健康的重视增加,消费者对保险的需求加大,重疾险占据了险种购买的大头,不过,这类险种交费分为,趸交.10.20.30年交费等多项选择,那么,重疾险交费年限长短区别是什么?重疾险交费年限长还是 ...

  6. mysql查询同名同姓重名人数,全国同名同姓人数在线查询,重名率查询

    全国同名同姓人数在线查询,重名率查询 时间:2020-05-21 21:30:01 不少爸爸妈妈在为孩子起名之时,会想知道在全中国重名的人数,希望婴儿的姓名不会跟太多人一样.或者有的人单纯想弄明白国内 ...

  7. mysql可重复读_到底什么是mysql的幻读和不可重复读

    幻读和不可重复读的定义 事务A 按照一定条件进行数据读取, 期间事务B 插入了相同搜索条件的新数据,事务A再次按照原先条件进行读取时,发现了事务B 新插入的数据称为幻读. 如果事务A 按一定条件搜索, ...

  8. 火绒安全软件怎么进行文件粉碎?火绒安全进行文件粉碎教程

    火绒盾是一款安全防御软件.与传统的杀毒软件不同,具有完善防御规则以及智能的行为分析技术.不需要庞大的病毒库,同时也可以很好的抵御恶意软件攻击,下面来学习在这里怎么粉碎文件吧 火绒安全软件怎么进行文件粉 ...

  9. 计算机论文查重修改吗,程序符号换了知网查重能过吗

    程序符号换了知网查重未必能过的,对于程序代码来说知网也是检测的.对于最新版本的检测系统来说,它对比的数据库中还新增了源代码数据库.所以说,程序代码一样容易出现非常高的重复率,与其它论文一样也是需要降重 ...

最新文章

  1. 2019年值得关注的人工智能技术的五大趋势
  2. vmware horizon view 添加vcenter server
  3. PC Lint 初学
  4. bzoj 1037: [ZJOI2008]生日聚会Party
  5. android xml pid vid,增加属性标识摄像头的vid与pid,以便知道摄像头与设备文件的对应关系...
  6. android设置输入框输入字符限制,Android里限制EditText控件可以输入字符内容的范围的方法...
  7. 【Python】Python中的列表操作
  8. 编写JUnit测试的另一种方法(Jasmine方法)
  9. asm 查看 数据文件 修改 时间_Oracle的ASM介绍及管理
  10. 三诺+n20g+微型计算机,原来是他?揭秘三诺永恒系列开山鼻祖
  11. 开源论坛软件 NodeBB 中存在多个严重漏洞
  12. 音乐播放器 EasyMusic (一)
  13. 用SPFA判断是否存在负环
  14. 关于P,V操作理解的分析
  15. Ubiquant LGBM Baseline 九坤量化大赛 版本44
  16. 2021-09-15频繁项集的评估标准
  17. python微博接口_Python使用新浪微博API发送微博的例子
  18. gbase mysql数据库_mysql/gbase数据库全库库表记录数统计
  19. InputStream的available()方法(读文件)
  20. Oracle | Oracle初级全程学习笔记

热门文章

  1. SSM(Spring+SpringMVC+Mybatis)框架环境搭建(整合步骤)(一)
  2. MyEclipse2015Stable2.0安装破解
  3. nginx设置 二级域名 指定端口
  4. sign check fail: check Sign and Data Fail!-错误处理
  5. 计算机与现代教育技术论文开题报告,计算机科学技术大学硕士与本科毕业论文开题报告...
  6. linux下怎么将html换成pdf,如何在Linux上使用PHP将HTML/CSS转换为PDF
  7. connect跨进程 qt_编写 Qt 跨线程异步调用器
  8. java 生成url_JAVA 通过URL生成水印图
  9. 【C语言进阶深度学习记录】四 C语言中的类型转换
  10. Visual Studio 2005 Tip:编辑项目文件