六、PHP如何防止注入及开发安全

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

学习重点1、PHP注入的基本原理2、防止注入的几种办法3、PHP其他地方安全设置PHP如何防止注入及开发安全PHP如何防止注入及开发安全1、PHP注入的基本原理程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQLInjection,即SQL注入。受影响的系统:对输入的参数不进行检查和过滤的系统SQL注入过程正常来讲,我们通过地址接收一些必要的参数如:PHP100.php?id=2页面中我们会使用2写入到SQL语句中正常情况:Select*FromTablewhereid=2如果我们对SQL语句熟悉,就知道2我们可以替换成我们需要的SQL语句如:andexists(selectidfromadmin)PHP如何防止注入及开发安全2、防止注入的几种办法其实原来就是我们需要过滤一些我们常见的关键字和符合如:Select,insert,update,delete,and,*,等等functioninject_check($sql_str){returneregi('select|insert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile',$sql_str);//进行过滤}例子或者是通过系统函数间的过滤特殊符号Addslashes(需要被过滤的内容)PHP如何防止注入及开发安全3、PHP其他地方安全设置1、register_globals=Off设置为关闭状态2、SQL语句书写时尽量不要省略小引号和单引号Select*FromTableWhereid=2(不规范)Select*From·Table·Where·id·=’2’(规范)3、正确的使用$_POST$_GET$_SESSION等接受参数,并加以过滤4、提高数据库命名技巧,对于一些重要的字段可根据程序特点命名5、对于常用方法加以封装,避免直接暴露SQL语句学习重点1、mod_rewrite简介和配置2、mod_rewrite规则的使用3、mod_rewrite规则修正符ApacheRewrite拟静态配置ApacheRewrite拟静态配置1、mod_rewrite简介和配置Rewirte主要的功能就是实现URL的跳转和隐藏真实地址,基于Perl语言的正则表达式规范。平时帮助我们实现拟静态,拟目录,域名跳转,防止盗链等如一个普通访问地址为*/php100.php?id=2可以转成:*/PHP100_2.html或转成:*/PHP100_2/Apache配置:支持httpd.conf配置和目录.htaccess配置启用rewrite#LoadModulerewrite_modulemodules/mod_rewrite.so去除前面的#LoadModulerewrite_modulemodules/mod_rewrite.so启用.htaccessAllowOverrideNone修改为:AllowOverrideAllApacheRewrite拟静态配置2、mod_rewrite规则的使用RewriteEngineonRewriteCond%{HTTP_HOST}!^[NC]RewriteRule^/(.*)[L]启动rewrite引擎判断主机跳转到RewriteEngineonRewriteRule^/test([0-9]*).html$/test.php?id=$1RewriteRule^/new([0-9]*)/$/new.php?id=$1[R]启动rewrite引擎跳转到ApacheRewrite拟静态配置3、mod_rewrite规则修正符1)R强制外部重定向2)F禁用URL,返回403HTTP状态码。3)G强制URL为GONE,返回410HTTP状态码。4)P强制使用代理转发。5)L表明当前规则是最后一条规则,停止分析以后规则的重写。6)N重新从第一条规则开始运行重写过程。7)C与下一条规则关联如果规则匹配则正常处理,以下修正符无效8)T=MIME-type(forceMIMEtype)强制MIME类型9)NS只用于不是内部子请求10)NC不区分大小写11)QSA追加请求字符串12)NE不在输出转义特殊字符\%3d$1等价于=$1学习重点1、PDO简介和配置2、PDO如何连接MYSQL3、PDO常用方法及其使用PHP5中使用PDO连接数据库PHP5中使用PDO连接数据库1、PDO简介和配置PDO(PHPDataObject)是PHP5中加入的东西,是PHP5新加入的一个重大功能,因为在PHP5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接和处理,什么php_mysql.dll、php_pgsql.dll、php_mssql.dll、php_sqlite.dll等等PHP6中也将默认使用PDO的方式连接,mysql扩展将被作为辅助PHP.iniextension=php_pdo.dllextension=php_pdo_mysql.dllextension=php_pdo_pgsql.dllextension=php_pdo_sqlite.dllextension=php_pdo_mssql.dllextension=php_pdo_odbc.dllextension=php_pdo_firebird.dll…重启web选择需要启用的PDO去除前面的#newPDO(“连接信息”,'root','',array(PDO::ATTR_PERSISTENT=true));PHP5中使用PDO连接数据库2、PDO如何连接newPDO(mysql:host=localhost;dbname=php100,root,“);数据库类型连接主机连接的数据库用户和密码默认这个不是长连接,如果需要数据库长连接,需要最后加一个参数:array(PDO::ATTR_PERSISTENT=true)变成这样:PHP5中使用PDO连接数据库3、PDO常用方法及其使用PDO::query()主要是用于有记录结果返回的操作,特别是SELECT操作PDO::exec()主要是针对没有结果集合返回的操作,如INSERT、UPDATE等操作PDO::lastInsertId()返回上次插入操作,主键列类型是自增的最后的自增IDPDOStatement::fetch()是用来获取一条记录PDOStatement::fetchAll()是获取所有记录集到一个中$rs=$db-query(SELECT*FROMPHP100);while($row=$rs-fetch()){print_r($row);}例学习重点1、制作PHP安装程序的原理和步骤2、制作安装用到的PHP函数3、制作安装的注意事项制作PHP安装程序的原理和步骤制作PHP安装程序的原理和步骤1、制作PHP安装程序的原理和步骤检查目录或文件的权限修改或填加配置文件检查配置文件正确性导入数据库锁定或删除安装文件原理:其实PHP程序的安装原理无非就是将数据库结构和内容导入到相应的数据库中,从这个过程中重新配置连接数据库的参数和文件,为了保证不被别人恶意使用安装文件,当安装完成后需要修改安装文件。制作PHP安装程序的原理和步骤2、制作安装用到的PHP函数is_writable()检查文件是否可写,用来判断文件权限,同类函数还有is_readable()检查文件是否可读,返回布尔值is_writable(“data/config.php”);fopen()文件操作函数,打开一个文件或新建fwrite()文件操作函数,写入内容到文件rename()文件操作函数,给文件改名制作PHP安装程序的原理和步骤3、制作安装的注意事项1、对文件权限进行检查和相关文件夹,如缓存,生成文件,配置文件2、安装文件尽可能独立,可删除,可改名。3、数据库导入时,需检查:a、检查是否有建立数据库的权限b、是否同名数据库的存在c、考虑到数据库导入的大小是否分段处理4、检查配置环境,各种模块的支持情况,如:gd2,pdo,rewirte等学习重点1、PHP备份数据库的原理2、PHP中mysql相关函数3、备份时候的注意事项PHP备份数据库的原理和方法PHP备份数据库的原理和方法1、PHP备份数据库的原理查找所有表查找所有字段查找所有数据生成SQL需要列出所有字段名,字段类型等相关信息读取数据出来注意特殊符号的转换addslashes()把数据格式化生成对应的SQL通过相关函数输出SQL相关信息,并格式化后生成文件,保存!PHP备份数据库的原理和方法2、PHP中mysql相关函数mysql_list_tables()表查询函数,类似mysql_query()函数mysql_fetch_field()字段信息函数,返回句柄Name字段的名称Table字段所属数据表的名称Type字段的类型max_length字段的最大长度not_null字段是否不能为空,是,则这一项的值为1primary_key字段是否为主键,是,则这一项的值为1unique_key字段是否为unique键,是,则这一项的值为1multiple_key字段是否不为unique键,是,则这一项的值为1Numeric字段是否为数字型,是,则这一项的值为1Blob字段是否为blob型,是,则这一项的值为1Unsigned数字型的字段是否为unsigned的,是,则这一项的值为1Zerofill数字型的字段是否为zerofilled的,是,则这一项的值为1PHP备份数据库的原理和方法CREATETABLE`help_category`(`help_category_id`int(5)unsignedNOTNULL,`name`char(64)NOTNULL)3、备份时候的注意事项例子:1、注意数据库的大小,过大或者过多的表分段处理2、生成的SQL文件名或者存放不易被猜到3、备份生成文件可以表或者自动为单位保存4、可以使用ZIP组件压缩生成的文件以便保持学习重点1、企业网站都有哪些基本功能2、如何写企业网站评估报告3、神奇的BIWEB积木式建站系统快速设计一个企业网站之BIWEB快速设计一个企业网站之BIWEB企业网站单页发布程序新闻发布针对一些企业简介、联系方式、荣誉等无需分页,只需单页发布即可支持自定义分类,新闻发布需要支持图片上传、后台排版、关键等内容产品展示支持自定义分类,多图上传,介绍,单价等相关字段订单功能对于产品展示或商品出售等做订单后台统计功能留言反馈一个企业网站必须的功能其他:搜索,后台管理,会员管理,采集,生成静态,SEO优化等1、企业网站都有哪些基本功能快速设计一个企业网站之BIWEB2、如何写企业网站评估报告一个专业的评估报告对你能否接下单子很重要描述模块根据需求根据地区和个人团队情况填写快速设计一个企业网站之BIWEB3、神奇的BIWEB积木式建站系统BIWEB网务通商务智能网站系统,设计初衷就是应用于高负载大流量的大型web项目,其结构灵活多变,可以非常方便的做到分压、分流和负载均衡,是web项目首选的建站系统。通过BIWEB,可以方便的搭建自己想要的各种web应用,并可在投入最小的硬件成本下负载最大的流量,做到性价比最高。特点:1、非传统的企业网站源码,他是提供建站底层模块2、完善的底层框架,可以为开发节省前期很多准备工作3、添加栏目只需要替换修改即可完成4、支持多种缓存机制,提高网站系统的速度5、提供了各类的户外接口,GGsitemap等让我们来体验演示一下吧学习内容1、BIWEB的使用常见问题解答2、BIWEB目录结构和数据库分析3、栏目如何更加独立和使用自定义内容4、从BIWEB我们学到了什么关于BIWEB常见问题和结构分析关于BIW

1 / 50
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功