实现PHP基本安全11条

 1.不要依赖注册全局变量功能(register_globals)

  注册全局变量的出现曾经让PHP(PHP培训 php教程 )变得非常易用,但也降低了安全性(方便之处经常会破坏安全性)。建议在编程时把register_globals指令关闭,在PHP6中这个功能也会被取消。

  2.在使用变量之前对其进行初始化。

  如果register_globals功能是启动的,即使程序员不使用它,恶意用户也可能利用为初始化变量的漏洞来侵入我们的系统。比如:

 if(conditon){

  $auth=TRUE;

  }

  如果变量$auth没有在这段之前被初始化为FALSE,那么用户就可以向脚本传递$_GET[‘auth’]、$_POST[‘auth’]或$_COOKIE[‘auth’]轻易的实现验证。

  3.检验和净化全部输入数据。

  4.在利用变量引用包含文件时要小心。

  如果脚本中有这样的代码:

  require($page);

  那么就应该确保$page不会来自外部资源(比如$_GET),或者,如果它的确来自于外部资源,那么就要确保它包含适当的值。

  5.在任何服务器上执行命令的函数都要多加小心。

  这些函数包括eval()、exec()、system()、passthru()、popen()和反撇号(``)。这些函数都能够在服务器上执行命令,永远都不要随意使用。如果在命令里不得不包含便来那个,就应该对这个变量进行彻底的安全检查。还应该使用escapeshellarg() escapeshellcom()进行额外的预处理。

  6.更改默认的会话目录,或者使用数据库保存会话数据。

  7.不要使用浏览器提供的文件名在服务器上保存上传的文件。

  8.如果被提交的数据需要在web页面中重新显示,一定要注意其中的HTML,更重要的是JAVASCRIPT

  可以利用函数

  string htmlspecialchars ( string string [, int quote_style [, string charset]])

  对提交的数据进行处理

  9.不要在站点上暴露你的PHP错误信息

  PHP错误信息能够在你开发的过程中把错误信息输出方便你的检查,但是如果暴露在Web上面,很可以成为攻击者的入口。

  10.防止SQL注入攻击。

  应该使用特定语言的数据库转义函数,比如mysqli_real_escape_data(),确保提交的内容不会破坏查询操作。

  11.永远不要在服务器上保存phpinfo()脚本。

时间: 2024-12-09 09:11:43

实现PHP基本安全11条的相关文章

提高程序员项目设计水平的11条建议

1.分析清楚你要面对的项目. 这是进行所有工作的第一步,如果你在这个地方都犯错了,那么后续所做的一切努力都是白费.比如,你要完成图书管理系统,那么你就应该明白这个系统主要是用于解决图书管理的问题. 2.考虑项目设计的方法. 在这个阶段,你要根据这个项目的特点考虑设计的工具和语言.比如,对于图书管理系统,它需要封装性好,这样有利于管理和维护.而这个系统开发周期较短,功能较简单.所以,根据其特点,选择Java作为开发语言会是一个不错的选择. 3.收集完整的需求. 花时间整理清楚你的用户群的基本需求有

我所遵守的11条数据库设计准则

前言:作者Shivprasad koirala,前微软ASP/ASP.NET的MVC工程师,现于印度任CEO职位.学生初次翻译,如有不妥,不吝赐教. 简介 在你开始阅读这篇文章之前,我要先告诉你我不算是数据库设计方面的什么大师.下面的11条准则,是我从项目.从我自身的经验和我自己的理解和学习中得来的.我个人认为在数据库设计方面运用这些准则能使我受益匪浅.我也欢迎任何批评与指点. 我之所以要写这么一篇详尽的文章,是因为,许多开发者设计数据库的时候十分信奉"三个范式"(译者注:而没有结合实

成为一个优秀程序员的11条小贴士

我是一个充满了激情的程序员,所以我觉得我很了解程序员.在这个领域耕耘了这么多年,我和许多非常聪慧的人们接触,他们编写了具有创意的代码,但是当其他人来维护这些代码的时候,他们就很抓狂了! 能够激励程序员的最重要的一点就是他们的激情.我们对于编写良好的程序富有激情,所以我们整合了一个有11条小贴士的清单来帮助您成为一个优秀的程序员.无论您是刚开始学习程序设计还是一个有经验的开发者,有一些东西是您在参考手册上找不到的.备注:我们不说是伟大的.但,绝对是很好的,也就是说好到足够让一些程序员依赖或者使用它

陈松松:经验告诉我们,做视频营销这11条标准一条也不能缺

每个视频,都是你的金牌业务员 这是我写的第55篇视频营销原创文章 与其搜索十年,不如花一年的时间学习,去赚9年的高薪! 这11条标准,是我在操作视频营销的时候谨记的11个规则,希望在你操作视频营销的时候作为你参考的标准. 标准01:每天至少原创一个优质视频 既然做视频营销,就要下定决心,要么就彻底放弃,不做三天打鱼,两天塞网的事情,伤神又费力.一年365天,去掉节假日,至少持续更新360天! 标准02:发布视频到所有视频平台 做一个视频不容易,来一个客户更不容易,把你制作的每一个视频发布到所有的

linux基础篇-linux必备11条 简述

1>, ls:list directory contents 列出目录内容 -l:长格式 文件类型 -:普遍文件 d:目录文件 b:块设备(block) c:字符文件(character) l:符合链接文件(symbolic link file) p:命令管道文件(socket) [[email protected] ~]# ls -ld /tmp drwxrwxrwt. 5 root root 4096 11月 10 10:36 /tmp 文件权限+属主(owner)+属组(group)+文件

linq to sql 怎么查询前 11 条数据

(from 新表 in db.books where 新表.bookid < 400 select 新表).Take(11); storeDB.Albums.OrderByDescending(a => a.OrderDetails.Count()).Take(count).ToList();数据上下文.Albums数据表.倒序排序(条件为按照各数据关联的OrderDetails数据表中数据的条数).拿记录(count条).立即执行转为list

所有程序员都应该遵守的 11 条规则

看到一篇翻译很好的博文,在这分享下 1: 技术是你获取解决方案的方法,而不是解决方案本身 我们可以得意忘形地使用最新的JavaScript框架-嗯哼,Angular-IoC 容器,编程语言,甚至操作系统.但作为一个程序员,所有这些东西并不是问题真正的解决方案,相反,它们只是帮助我们解决问题的简单工具. 在面对那些我们喜欢或是当前非常流行的特殊技术时,我们必须非常小心,而不是变得过于疯狂.以免步入这样一个险境:仅仅因为我们手里拿了一把闪闪发亮的锤子,就把所有的问题都看作钉子. 2: 对代码而言,“

构建高效测试团队11条法则

       测试是一门武学,流程是武技.工具是武器,思维是秘诀.有简单的如花拳秀腿,也有深奥的九阴真经.九阳真经. 测试好比玩魔兽世界,知己知彼,方能百战不殆. 测试好比玩CS,玩得好可以一枪爆头(轻松找出系统缺陷),玩得不好,上线后被客户骂得晕头转向. 所以我们要在打好拳脚的基础上用各种测试技能武装自己,然后再根据自己对测试质量的了解去不断挖掘自己的潜力(作为测试管理者就要不断发现并挖掘团队成员的潜力,使之快速成长),全方位提升各项测试技能,例如,怎么了解当下系统业务知识.怎么了解当前系统需

决定你是富人还是穷人的11条标准

1.自我认知 穷人:很少想到如何去赚钱和如何才能赚到钱,认为自己一辈子就该这样,不相信会有什么改变. 富人:骨子里就深信自己生下来不是要做穷人,而是要做富人,他有强烈的赚钱意识,这也是他血液里的东西,他会想尽一切办法使自己致富. 2.休闲 穷人:在家看电视,为肥皂剧的剧情感动得痛苦流涕,还要仿照电视里的时尚来武装自己. 富人:在外跑市场,即使打高尔夫球也不忘带者项目合同. 3.交际圈子 穷人:喜欢走穷亲戚,穷人的圈子大多是穷人,也排斥与富人交往,久而久之,心态成了穷人的心态,思维成了穷人的思维,