版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1PHP安全及性能优化2本周内容vPHP安全vPHP性能优化3PHP安全v输入验证v跨站点脚本阻止vSQL注入v代码注入v命令注入vSession安全v文件访问安全v沙盒4输入验证v输入验证v正则表达式vSanitizing 和 Logical过滤器v清理输入字符串5跨站点脚本攻击阻止v拒绝特殊字符v利用HTTP-only Cookie解决XSSv使用filter_xss()阻止跨站点脚本攻击6SQL注入v引号使用v预编译语句vLike使用vSQL错误处理v其它风险7代码注入v路径校验v使用全路径v避免动态路径v验证文件名v其它代码注入风险8命令注入v通过命令注入使资源衰竭v路径使用v隐含威胁
2、9Session安全v服务器端的弱点vURL SessionvSession鼓动v本地保护机制v服务器端过期机制v加密Session超出v基于IP的验证10文件访问安全v加密读权限v加密写权限v上载文件现值v文件前面v安全模式vPHP编码v根目录管理11沙盒v使用沙盒误导攻击v编译沙盒vIP地址限制v路由信息12PHP性能优化vPHP代码人工优化v使用优化工具优化代码v页面文件压缩输出vMysql缓存优化配置v数据库优化13PHP代码人工优化(一)v方法可静态化,速率可提升至 4 倍v使用echo而不是printv使用 echo 的多重参数,而不是字符串连接。v便利数组时foreach比whi
3、le大约快20%-30%左右。v注销那些不用的变量尤其是大数组,以便释放内存。v尽量避免使用 _get,_set,_autoload。v在包含文件时使用完整路径,解析操作系统路径所需的时间会更少。v函数代替正则表达式完成相同功能14PHP代码人工优化(二)v使用选择分支语句(译注:即 switch case)好于使用多个 if,else if 语句。v用 屏蔽错误消息的做法非常低效。 v打开 apache 的 mod_deflate 模块。v数据库连接当使用完毕时应关掉。v$rowid 的效率是 $rowid 的 7 倍。v错误消息代价昂贵。v尽量不要在 for 循环中使用函数,比如 for(
4、$x=0; $x prop+)要比递增一个局部变量慢 3 倍。v递增一个未预定义的局部变量要比递增一个预定义的局部变量慢 9 至 10 倍。v仅定义一个局部变量而没在函数中调用它,同样会减慢速度(其程度相当于递增一个局部变量)。PHP 大概会检查看是否存在全局变量。16PHP代码人工优化(四)v 方法调用看来与类中定义的方法的数量无关,因为我(在测试方法之前和之后都)添加了 10 个方法,但性能上没有变化。v 派生类中的方法运行起来要快于在基类中定义的同样的方法。v 调用带有一个参数的空函数,其花费的时间相当于执行 7 至 8 次的局部变量递增操作。类似的方法调用所花费的时间接近于 15 次的
5、局部变量递增操作。v 用单引号代替双引号来包含字符串,这样做会更快一些。因为 PHP 会在双引号包围的字符串中搜寻变量,单引号则不会。当然,只有当你不需要在字符串中包含变量时才可以这么做。v 输出多个字符串时,用逗号代替句点来分隔字符串,速度更快。注意:只有 echo 能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP 手册中说 echo 是语言结构,不是真正的函数,故把函数加上了双引号)。17PHP代码人工优化(五)v Apache 解析一个 PHP 脚本的时间要比解析一个静态 HTML 页面慢 2 至 10 倍。尽量多用静态 HTML 页面,少用脚本。v 除非脚本可以缓存,
6、否则每次调用时都会重新编译一次。引入一套PHP缓存机制通常可以提升 25% 至 100% 的性能,以免除编译开销。v 尽量做缓存,可使用 memcached。memcached 是一款高性能的内存对象缓存系统,可用来加速动态 Web 应用程序,减轻数据库负载。对运算码 (OP code) 的缓存很有用,使得脚本不必为每个请求做重新编译。v 并不是事必面向对象 (OOP),面向对象往往开销很大,每个方法和对象调用都会消耗很多内存。v 并非要用类实现所有的数据结构,数组也很有用。18PHP代码人工优化(六)v不要把方法细分得过多,仔细想想你真正打算重用的是哪些代码?v尽量采用大量的 PHP 内置函
7、数。v如果在代码中存在大量耗时的函数,你可以考虑用 C 扩展的方式实现它们。v评估检验 (profile) 你的代码。检验器会告诉你,代码的哪些部分消耗了多少时间。Xdebug 调试器包含了检验程序,评估检验总体上可以显示出代码的瓶颈。vmod_zip 可作为 Apache 模块,用来即时压缩你的数据,并可让数据传输量降低 80%。 v我想要完成的任何事情 19使用优化工具优化代码vzend optimizer工具的使用20页面文件压缩输出vHtml页面、JavaScript、CSS文件压缩输出v使用Apache2的mod_deflate模块21MySql缓存优化配置v使用动态缓存v使用静态缓存v使用缓存工具eAccelerator、APC、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 卷1-备战2022年中考生物【名校地市好题必刷】全真模拟卷(全国2024)·第一辑(解析版)
- 安全教育:打雷下雨时怎办
- 金融员工法律知识
- 气体钢瓶安全操作规程
- 家庭住宅木地板安装合同
- 学区房二手房买卖合同模板
- 建筑设计退休设计师聘用协议
- 水电站后勤保障合同
- 美食广场餐饮服务人员培训计划
- 钢筋施工拓展协议
- DB11∕T 808-2020 市政基础设施工程资料管理规程
- 中学地理七年级《世界的气候类型》说课稿
- 国资国企企业学习二十届三中全会精神专题培训
- 《单片机原理及应用》期末复习资料
- 2024年新湘教版七年级上册地理教学课件 4.3 丰富多彩的世界文化
- 2024年全国职业院校技能大赛高职组(生产事故应急救援赛项)考试题库(含答案)
- 移动警务解决方案
- 2021-2022学年黑龙江省牡丹江市宁安市九年级(上)期末数学试卷
- 西洋参培训课件
- FURUNO 电子海图 完整题库
- 项目股份买断合同范本
评论
0/150
提交评论