欢迎来到天天文库
浏览记录
ID:22098593
大小:68.00 KB
页数:8页
时间:2018-10-27
《基于php的信息系统数据安全性分析与探讨》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、基于PHP的信息系统数据安全性分析与探讨炎黄职业技术学院摘要:随着信息化技术的推动和发展,信息系统安全口益重要,本文从信息系统数据合法性、MySQLi扩展的预处理机制、混淆式的密码算法等方而对信息系统数据安全性建设进行了分析及探讨。关键词:PHP;数据安全;密码算法;作者简介:焦显伟(1978-),男,山东曹县人,计算机屮心主任,高级工程师,研宄方向为计算机网络技术。AnalysisandDiscussiononInformationSystemDataSecurityBasedonPHPJIAOXian-weiY
2、anhuangTechnologicalCollege;Abstract:Withtheadvancementanddevelopmentofinformationtechnology,thesecurityofinformationsystemisbecomingmoreandmoreimportant.Thispaperanalyzesthedatasecurityofinformationsystemfromtheaspectsofinformationsystemdatalegitimacy,MySQLie
3、xtendedpreprocessingmechanismandconfusingcryptographicalgorithm.Keyword:PHP;datasecurity;cryptographicalgorithm;0引言对于互联网企业,信息系统中承载着大量的数据,尤其是在线购物、网络银行等系统,对于安全性的要求非常严格。一旦出现安全漏洞,在严重情况不会导致数据泄露、篡改、窃取,造成系统瘫痪等问题,将会给企业带来不可估量的损失,所以说系统数据安全至关重要。接下来,本文将从以下儿方面分析与探讨系统数据的安全性
4、建设问题。1预防非法表单提交并验证数据合法性任何软件通过HTTP协议都可以向Web服务器提交数据,可以更换表单中的控件,伪造另一个表单。假设域名为“http://www.xxx.com”的服务器中有一个edit,php文件用于接收表单信息。原表单中有一组单选按钮,只能选择C#或PHP。如果编造一个HTML页面,把单选按钮替换为文本框,内容随意编写,并将表单提交给http://www.xxx.com.qlu.vpn358.com/edit.php,而服务器无法分辨真伪表单。要预防非法表单提交,比较好的方式是根据一个惟
5、一的字符串或时间戳生成一个令牌,并将这个令牌放在会话变量和表单隐藏域中。提交表单之后,检查两个令牌是否匹配。如果不匹配,就知道有人伪造表单向Web服务器发送数据。简略代码如下。$token=md5(uniqid(rand(),true));$token;再者Web表单利用浏览器限制了提交的内容,但无法限制服务器接收什么样的内容。因此,对于用户输入的内容,一定要验证数据的合法性。在对用户提交内容进行验证时,可以利用正则表达式实现复杂的验证规则。比如验证18位身份证号。在PHP中,可以使用preg_match()函数进
6、行正则匹配,该函数的第1个参数表示正则表达式,第2个参数表示带匹配的字符串,返回值为匹配的次数。具体代码如下。$id=$_P0ST[^id1;//接收身份证」if(!preg_matchdd{6})(d{4})(d{2}:$、$id)){echox身份证号格式不符合I通过preg_match()函数对身份证号进行验证,当函数返冋的匹配次数为0吋,表示输入的字符串不符合规则。2防御SQL注入SQL注入是开发人员未对用户输入的数据进行过滤就拼接到SQL语句中执行,导致用户输入的一些特殊字符破坏了原有SQL语句的逻
7、辑,造成数据被泄露、篡改、删除等危险的后果。比如不列代码就存在SQL注入问题。该代码将來自外部的name数据直接拼接到SQL语句中,如果用户输入了单引号,则会将原有SQL语句中的单引号闭合,然后用户就可以将自己输入的内容当成SQL执行。$name=$_POST[’name’];$result=mysqli_query($link,nSELE(WHERE、nameK='$name’n);假设用户输入“’orl=’l”,SQL语句将变为SELECT*FROM'admin'WHERE'name'or1=’1’。此时就会通
8、过or条件查询出admin表中所有的记录,造成了数据的泄露。接下来改进上述代码,操作数据库使用丫MySQLi扩展的预处理机制,将SQL语句和数据分离,从本质上避免丫SQL注入问题的发生,同时也更加高效,简略代码如下。$name=$_POST[’name’];//接收变$stmt=mysqli_prepare($link,^adminWHEREiame'=?O
此文档下载收益归作者所有