欢迎来到天天文库
浏览记录
ID:22581806
大小:57.00 KB
页数:7页
时间:2018-10-30
《基于php环境开发安全web程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、基于PHP环境开发安全Web程序pty($_GET[id])){$id=(int)$_GET[id//$id=(float)$_GET[id}方法二:使用intval、floatval函数转换。$id=intval($_GET[id]);或者$id=floatval($_GET[id])。(2)字符串数据的过滤。字符串在程序中非常常见,所以对其处理也就更加重要。PHP提供了以ctype_开头的一系列函数来验证字符串内容,如ctype_alnum用来检查是否包含字母或者数字、ctype_alpha用来检查是否只包含字母、ctype_digit用来检查是否只包含数字等,可以灵活
2、运用这些函数验证字符串是否合法。示例代码如下:if(!ctype_alnum($_GET[username]))//检查用户名是否为数字和字母组成。2.2与PHP标签的过滤2.2.1防范攻击类型:客户端脚本植入攻击(1)客户端脚本攻击(ScriptInsertion)是指将可以执行的脚本插入到表单、图片、动画、超链接文字等对象中,当用户打开这些对象后,植入的脚本就会被执行。可以用作脚本植入攻击的标签主要有几个。会弹出一个令人莫名其妙的对话框,那么在脚本中植入可能就不仅仅是一个小玩笑了,它会让运行这句代码的人的计算机不断的打开新X页窗口,直到耗尽计算机内存,此时只有重启计算机
3、才能制止新X页的不断打开。如果黑客要进行更严重的攻击,可能会使用的方式,使页面自动跳转到黑客指定的可能有病毒的X站。2.2.2防范方法:输出到页面的数据过滤防范客户端脚本植入攻击在PHP环境中有两种方法。(1)使用strip_tags函数删除字符串中的和PHP标签。strip_tags函数会返回过滤和PHP标签后的字符串,将从数据库中读取出来的记录首先用strip_tags进行过滤后再输出到X页,代码如下:echo留言:.strip_tags($_POST[question]).如此,从$_POST[question]传来的数据就会被处理成字符串,而不再是Javascrip
4、t代码了。(2)使用specialchars函数将特殊字符转换成编码。strip_tags函数有一定缺陷,会在没有和PHP标签的情况下失效,例如将aa”alert(‘又来了!’);”提交给标签,则在客户端会生成如此当鼠标指针经过该文本框区域时,就会出现一个对话框,由此可见strip_tags函数并不能完全过滤有危险的程序代码。specialchars函数便成了删除插入脚本的最佳方法,因为该函数可以将英文的单引号、双引号、大于号、小于号等字符转变成字符串,从而避免这些特殊符号对程序的影响。例如,将上述语句改为:“/如果$_POST[question]的值依然为aa”alert
5、(‘又来了!’);,则其中的英文双引号被替换为“”,单引号被替换成””,那么文本框中的value属性值为:,如此,双引号与单引号都被替换成普通字符串,从而避免了从客户端的植入攻击。2.3Session的安全2.3.1防范攻击类型:会话劫持攻击服务器与客户端之间是通过Session来连接沟通的,当客户端的浏览器连接到服务器后,服务器会建立一个独立的、属于该用户的Session并由服务器维护。每个用户的Session是一个独特的字符串,称为SessionID。当用户从浏览器向服务器发送请求时,所发送的HTTP表头内就包含SessionID的值,服务器由此来识别是哪一个用户发出的
6、请求。由于Session中保存的是每个用户个人的数据(如会员登录时输入的账号、密码),同时Session具有一定的生命周期,所以会被黑客利用各种手段获取得目标用户的SessionID,从而给用户带来损失。黑客获取目标用户SessionID的方法一般有三种:一是暴力破解,黑客会尝试许多不同的sessionid值,直到破解为止;二是计算,如果sessionid值是使用非随机的产生方式,那么就可能被计算出来;三是窃取,使用X络截获、病毒、木马、XSS攻击等方法获得。2.3.2防范方法:加强Session安全性如果Session会被黑客利用,那么防范方法就是加大非法使用用户Sess
7、ion的难度。防范会话劫持攻击一般有几种方法。(1)定期更改SessionID。使用PHP机制中session_regenerate_id函数,在X页每次加载时都会自动产生一个新的SessionID。(2)更改Session的名称。Session的默认名称是PHPSESSID,此变量会保存在Cookie中,如果黑客能够获得目标用户的Cookie,就能够分析出目标用户的SessionID,如果使用语句:“session_name(“mysessionid”);”,黑客就不那么容易猜到SessionID是哪一个,可以阻
此文档下载收益归作者所有