- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
L003001015-HTTP攻击与防范-SQL注入攻击-05脚本PHP的SQL注入防护
课程编写类别内容实验课题名称HTTP攻击与防范-SQL注入攻击-05脚本PHP的SQL注入防护实验目的与要求1、了解如何防护SQL注入2、了解对PHP代码如何修改进行SQL注入防护实验环境VPC1(虚拟PC)操作系统类型:windows,网络接口:本地连接VPC1 连接要求PC 网络接口,本地连接与实验网络直连软件描述1、学生机要求安装java环境2、vpc安装windows实验环境描述学生机与实验室网络直连;VPC1与实验室网络直连;学生机与VPC1物理链路连通;预备知识SQL注入被那些菜鸟级别的所谓黑客高手玩出了滋味,发现现在大部分黑客入侵都是基于SQL注入实现的.??现在我开始说如果编写通用的SQL防注入程序一般的http请求不外乎get?和?post.??所以只要我们在文件中过滤所有post或者get请求中的参数信息中非法字符即可,所以我们实现http?请求信息过滤就可以判断是是否受到SQL注入攻击。当传递数据后,PHP解析器会分析数据的信息,??然后根据,分出各个数组内的数据所以get的拦截如下: 首先我们定义请求中不能包含如下字符,并进行替换保存到一个phpsqlinj.php文件中,代码如下:?phpfunction php_sava($str){??? $farr = array(???????/s /,?????????????????????????????? /(/?)(script|i?frame|style|html|body|title|link|meta|?|%)([^]*?)/isU,???????? /([^]*)on[a-zA-Z] s*=([^]*)/isU,????? );?? $tarr = array(??????? ,??????? <\1\2\3>,?????????? //如果要直接清除不安全的标签,这里可以留空??????? \1\2,?? );$str = preg_replace( $farr,$tarr,$str);?? return $str;}//php sql防注入代码class sqlin{//dowith_sql($value)function dowith_sql($str){?? $str = str_replace(and,,$str);?? $str = str_replace(execute,,$str);?? $str = str_replace(update,,$str);?? $str = str_replace(count,,$str);?? $str = str_replace(chr,,$str);?? $str = str_replace(mid,,$str);?? $str = str_replace(master,,$str);?? $str = str_replace(truncate,,$str);?? $str = str_replace(char,,$str);?? $str = str_replace(declare,,$str);?? $str = str_replace(select,,$str);?? $str = str_replace(create,,$str);?? $str = str_replace(delete,,$str);?? $str = str_replace(insert,,$str);?? $str = str_replace(,,$str);?? $str = str_replace( ,,$str);?? $str = str_replace(or,,$str);?? $str = str_replace(=,,$str);?? $str = str_replace( ,,$str);?? //echo $str;?? return $str;}//aticle()防SQL注入函数//php教程function sqlin(){?? foreach ($_GET as $key=$value)?? {?????? $_GET[$key]=$this-dowith_sql($value);?? }?? foreach ($_POST as $key=$value)?? {?????? $_POST[$key]=$this-dowith_sql($value);?? }}}$dbsql=new sqlin();?然后在获取form表单内容页面,例如login.php中加入一行代码include (phpsqlinj.php);即可.好了大功告成,我们已经实现了get和post请求的信息拦截,你只需要在conn.asp之类的打开数据库文件之前引用这个页面即可。放心的继续开发你的程序,不用再考虑
原创力文档


文档评论(0)