5_1PHP安全及性能优化

上传人:sx****84 文档编号:243097550 上传时间:2024-09-15 格式:PPT 页数:23 大小:555KB
返回 下载 相关 举报
5_1PHP安全及性能优化_第1页
第1页 / 共23页
5_1PHP安全及性能优化_第2页
第2页 / 共23页
5_1PHP安全及性能优化_第3页
第3页 / 共23页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,PHP,安全及性能优化,1,本周内容,PHP,安全,PHP,性能优化,2,PHP,安全,输入验证,跨站点脚本阻止,SQL,注入,代码注入,命令注入,Session,安全,文件访问安全,沙盒,3,输入验证,输入验证,正则表达式,Sanitizing,和,Logical,过滤器,清理输入字符串,4,跨站点脚本攻击阻止,拒绝特殊字符,利用,HTTP-only Cooki,e,解决,XSS,使用,filter_xss(),阻止跨站点脚本攻击,5,SQL,注入,引号使用,预编译语句,Like,使用,SQL,错误处理,其它风险,6,代码注入,路径校验,使用全路径,避免动态路径,验证文件名,其它代码注入风险,7,命令注入,通过命令注入使资源衰竭,路径使用,隐含威胁,8,Session,安全,服务器端的弱点,URL Session,Session,鼓动,本地保护机制,服务器端过期机制,加密,Session,超出,基于,IP,的验证,9,文件访问安全,加密读权限,加密写权限,上载文件现值,文件前面,安全模式,PHP,编码,根目录管理,10,沙盒,使用沙盒误导攻击,编译沙盒,IP,地址限制,路由信息,11,PHP,性能优化,PHP,代码人工优化,使用优化工具优化代码,页面文件压缩输出,Mysql,缓存优化配置,数据库优化,12,PHP,代码人工优化(一),方法可静态化,速率可提升至,4,倍,使用,echo,而不是,print,使用,echo,的多重参数,而不是字符串连接。,便利数组时,foreach,比,while,大约快,20%-30%,左右。,注销那些不用的变量尤其是大数组,以便释放内存。,尽量避免使用,_get,,,_set,,,_autoload,。,在包含文件时使用完整路径,解析操作系统路径所需的时间会更少。,函数代替正则表达式完成相同功能,13,PHP,代码人工优化(二),使用选择分支语句(译注:即,switch case,)好于使用多个,if,,,else if,语句。,用,屏蔽错误消息的做法非常低效。,打开,apache,的,mod_deflate,模块。,数据库连接当使用完毕时应关掉。,$rowid,的效率是,$rowid,的,7,倍。,错误消息代价昂贵。,尽量不要在,for,循环中使用函数,比如,for($x=0; $x prop+,)要比递增一个局部变量慢,3,倍。,递增一个未预定义的局部变量要比递增一个预定义的局部变量慢,9,至,10,倍。,仅定义一个局部变量而没在函数中调用它,同样会减慢速度(其程度相当于递增一个局部变量)。,PHP,大概会检查看是否存在全局变量。,15,PHP,代码人工优化(四),方法调用看来与类中定义的方法的数量无关,因为我(在测试方法之前和之后都)添加了,10,个方法,但性能上没有变化。,派生类中的方法运行起来要快于在基类中定义的同样的方法。,调用带有一个参数的空函数,其花费的时间相当于执行,7,至,8,次的局部变量递增操作。类似的方法调用所花费的时间接近于,15,次的局部变量递增操作。,用单引号代替双引号来包含字符串,这样做会更快一些。因为,PHP,会在双引号包围的字符串中搜寻变量,单引号则不会。当然,只有当你不需要在字符串中包含变量时才可以这么做。,输出多个字符串时,用逗号代替句点来分隔字符串,速度更快。注意:只有,echo,能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:,PHP,手册中说,echo,是语言结构,不是真正的函数,故把函数加上了双引号)。,16,PHP,代码人工优化(五),Apache,解析一个,PHP,脚本的时间要比解析一个静态,HTML,页面慢,2,至,10,倍。尽量多用静态,HTML,页面,少用脚本。,除非脚本可以缓存,否则每次调用时都会重新编译一次。引入一套,PHP,缓存机制通常可以提升,25%,至,100%,的性能,以免除编译开销。,尽量做缓存,可使用,memcached,。,memcached,是一款高性能的内存对象缓存系统,可用来加速动态,Web,应用程序,减轻数据库负载。对运算码,(OP code),的缓存很有用,使得脚本不必为每个请求做重新编译。,并不是事必面向对象,(OOP),,面向对象往往开销很大,每个方法和对象调用都会消耗很多内存。,并非要用类实现所有的数据结构,数组也很有用。,17,PHP,代码人工优化(六),不要把方法细分得过多,仔细想想你真正打算重用的是哪些代码?,尽量采用大量的,PHP,内置函数。,如果在代码中存在大量耗时的函数,你可以考虑用,C,扩展的方式实现它们。,评估检验,(profile),你的代码。检验器会告诉你,代码的哪些部分消耗了多少时间。,Xdebug,调试器包含了检验程序,评估检验总体上可以显示出代码的瓶颈。,mod_zip,可作为,Apache,模块,用来即时压缩你的数据,并可让数据传输量降低,80%,。,我想要完成的任何事情,18,使用优化工具优化代码,zend optimizer,工具的使用,19,页面文件压缩输出,Html,页面、,JavaScript,、,CSS,文件压缩输出,使用,Apache2,的,mod_deflate,模块,20,MySql,缓存优化配置,使用动态缓存,使用静态缓存,使用缓存工具,eAccelerator,、,APC,、,Zend platform for performance suite,等,Php,函数库预先读到缓存中,21,数据库优化,索引,ISAM,类型的表改为,MyISAM,合理使用范式,用固定的表格式创建表,存储过程的使用,22,结束语,谢谢!,23,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!