欢迎来到天天文库
浏览记录
ID:20604188
大小:63.55 KB
页数:10页
时间:2018-10-14
《基于php环境开发安全web程序》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、基于PHP环境开发安全Web程序【摘要】Web程序安全备受世人关注,但安全性涉及到程序的开发设计、运营等各方面。论文利用PHP语言,从SQL注入、客户端脚本注入和Session安全等方面,深入探讨了在程序设计方面如何有针对性地增强安全防护能力。【关键词】PHP;SQL注入;Session;脚本植入攻击【Abstract】ThesecurityofWebapplicationhaswidelyconcerned,butsecurityinvolvedinthedevelopmentdesignoperationandsoon.
2、Thispaper,byusingthePHPlanguage,fromSQLinjection,theclientscriptinjectionandsessionsecuritythoroughlydiscusseshowtotargetedonprogramdesignabilityofsecurityprotection.【Keywords】php;sqlinjection;session;scriptinsertion1引百安全性在网络环境中一直备受人们重视,但这个世界“矛和盾”的竞争始终没有停止过,“入侵与反入侵
3、”每天也在上演。那么如何才能避免自己的Web程序免遭、或者少遭受一些攻击从而把潜在的损失降到最低,是摆在每个Web程序设计人员面前的一道不得不面对的课题。2开发安全的Web程序2.1过滤输入的数据2.1.1防范攻击类型:脚本注入和SQL注入攻击在设计网页时,程序开发者应考虑到用户在网页表单中可能会输入任意形式的字符串,更有甚者,黑客可能会提交恶意代码,从而造成恶劣后果。例如在Web网页留言板中,会让用户填写留言信息并提交,此时如果输入以下代码而没有进行敏感字符相应过滤,则当浏览这条消息后页面会马上跳转:开个小玩笑假如跳转后的
4、页面加载了病毒或者木马,那么使用者很可能会遭受攻击。动态网站都采用数据库技术,如果没有对SQL语句进行仔细检查和处理,黑客很可能利用在客户端网页中输入数据的功能。如在会员登录页面中输入某些关键字和字符串,组合成能够操纵数据库的语句,从而对网站造成破坏或者入侵。2.1.2防范方法:过滤输入数据(1)数字数据的过滤。在Web程序中,使用GET、POST、Cookie传递参数,最后一定是字符串的形式,若这些参数是整数但使用字符串来传递,不但没有效率而且非常危险。如果可以确定输入的数据一定是数字,则可以使用数据类型转换的方式将输入的
5、数据强制转换成数字格式,从而堵塞恶意代码的提交和执行。方法一:用数据类型进行强制转换。if(!empty($_GET[“id”])){$id=(int)$_GET[“id”];//$id=(float)$_GET[“id”方法二:使用intval、floatval函数转换。$id=intval($_GET[“id”]);或者$id=floatval($_GET[“id”])。(1)字符串数据的过滤。字符串在程序中非常常见,所以对其处理也就更加重要。PHP提供了以头的一系列函数来验证字符串内容,如ctype_a.lnum用来检
6、查是否包含字母或者数字、ctype_alpha用来检查是否只包含字母、ctype_digit用来检查是否只包含数字等,可以灵活运用这些函数验证字符串是否合法。示例代码如下://检if(!ctype_alnum($_GET[“username”])查用户名是否为数字和字母组成。2.2HTML与PHP标签的过滤2.2.1防范攻击类型:客户端脚本植入攻击(1)客户端脚本攻击(ScriptInsertion)是指将可以执行的脚本插入到表单、图片、动画、超链接文字等对象中,当用户打开这些对象后,植入的脚本就会被执行。可以用作脚本植入攻
7、击的HTML标签主要有几个。会弹出一个令人莫名其妙的对话框,那么在脚本中植入可能就不仅仅是一个小玩笑了,它会让运行这句代码的人的计算机不断的打开新网页窗口,直到耗尽计算机内存,此时只有重启计算机才能制止新网页的不断打开。如果黑客要进行更严重的攻击,可能会使用的方式,使页面自动跳转到黑客指定的可能有病毒的网站。2.2.2防范方法:输出到页面的数据过滤防范客户端脚本植入攻击在PHP环境中有两种方法。(1)使用strip_tags函数删除字符串中的HTML和PHP标签。strip_tags函数会返回过滤HTML和PHP标签后的字符
8、串,将从数据库中读取出来的记录首先用strip_tags进行过滤后再输出到网页,代码如下:.strip_tagsecho“留($_P0ST[“question”如此,W$_P0ST[“question”]传来的数据就会被处理成字符串,而不再是Javascript代码了。(1)使用htmls
此文档下载收益归作者所有