2019独角兽企业重金招聘Python工程师标准>>>

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

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

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

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

if(condition){

$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()脚本。

转载于:https://my.oschina.net/xujiajay/blog/10995

实现PHP基本安全的11条准则相关推荐

  1. Docker学习总结(34)——新手使用Docker的11条准则

    Docker的具有很多的优点,比如:一体化--将操作系统.库版本.配置文件.应用程序等全部打包装在容器里.从而保证 QA 所测试的镜像 (image) 会携带同样的行为到达生产环境:轻量--内存占用极 ...

  2. 转:高效代码审查的八条准则和十个经验

    代码审查(Code Review)是软件开发中常用的手段,和QA测试相比,它更容易发现和架构以及时序相关等较难发现的问题,还可以帮助团队成员提高编程技能,统一编程风格等. 1. 代码审查要求团队有良好 ...

  3. (转载)做好一个系统分析师、项目经理75条准则(一)

      (转载)做好一个系统分析师.项目经理75条准则(一) 1. 你们的项目组使用源代码管理工具了么? 应该用.VSS.CVS.PVCS.ClearCase.CCC/Harvest.FireFly都可以 ...

  4. 高效代码审查的八条准则和十个经验

    代码审查(Code Review)是软件开发中常用的手段,和QA测试相比,它更容易发现和架构以及时序相关等较难发现的问题,还可以帮助团队成员提高编程技能,统一编程风格等. 1. 代码审查要求团队有良好 ...

  5. Unobtrusive JavaScript 不唐突的JavaScript的七条准则

    Unobtrusive JavaScript是一种将Javascript从HTML结构抽离的设计概念,避免在HTML标签中夹杂一堆onchange.onclick--等属性去挂载Javascript事 ...

  6. 福利 | 如何创造可信的AI?人工智能大牛盖瑞·马库斯的11条建议

    文末有福利哦~ (本文来自湛庐文化策划出版新书<如何创造可信的AI>,作者盖瑞·马库斯(Gary Marcus )  欧内斯特·戴维斯(Ernest Davis)) 在人工智能领域中,深度 ...

  7. 优秀程序员写代码一定会用的 11 条经验

    这是一篇值得收藏起来,隔三差五就拿来重读的文章!因为作者向你保证,他"遇到的所有糟糕的代码,都是因为没采纳这些实践经验.而任何一段优秀的代码,都采纳了至少部分实践经验." 还等什么 ...

  8. pgsql 前10条_白沙湾南片区11条新建道路最新进度及建成时间,已建成一条!还有一条将通车...

    原标题:白沙湾南片区11条新建道路最新进度及建成时间,已建成一条!还有一条将通车 近日,@白沙河畔 从流亭街道办事处获悉:为了完善白沙湾南片区及仙家寨南片区路网及基础设施配套,为周边区域提供良好的生活 ...

  9. 11条建议让你成为优秀的JavaScript程序员

    原文: 11条建议让你成为优秀的JavaScript程序员 每个编程语言都有他自己的个性,那么我们如何高效地掌握JavaScript呢?本 JavaScript教程 给你11条编程建议,让你成为优秀的 ...

最新文章

  1. G - Shuffle‘m Up POJ - 3087
  2. for语句之打印三角形问题
  3. MySql数据库查询结果用表格输出PHP代码示例
  4. STM32 基础系列教程 25 - USB_HID_mouse
  5. C语言 | 求1000以内的所有完数及求2000以内最大的完数(C源代码)
  6. 按汉字首字母排序(sql语句)
  7. android软件的data使用方法,实例讲解Android中SQLiteDatabase使用方法
  8. mybatis java类注解式_Spring整合Mybatis注解方式
  9. npm 缓存_npm缓存:无名英雄
  10. 去哪儿-19-detail-ajax
  11. Go如何对数组切片进行去重
  12. Windows安装CUDAcuDNNanaconda
  13. git diff生成patch用法
  14. Leetcode 233.数字1的个数
  15. Mybatis插件动态数据库链接
  16. spring boot企业合同管理系统毕业设计源码161456
  17. 三维扫描仪中投射模块/投影仪推荐
  18. 软件民工的幸福生活3
  19. duilib库combo box提供输入字符模糊查询
  20. CAD梦想画图中的“绘图工具——椭圆弧”

热门文章

  1. NMAP分布式扫描工具dnmap
  2. Windows自带Android模拟器启动失败
  3. Unity 2D游戏开发教程之精灵的死亡和重生
  4. compareto方法_compare方法和compareTo方法区别
  5. pix2pixhd_一文读懂GAN, pix2pix, CycleGAN和pix2pixHD
  6. ifconfig 安装_第一章Linux服务器环境搭建之JDK安装
  7. python3基本知识_Python3 - 基础知识、基本了解
  8. linux usr local权限,OS X权限被拒绝/ usr/local/lib
  9. python中哪里用到缩进_Python编程常见十大错误
  10. iacr crypto 级别_以防范病毒和黑客的侵犯,Windows 10如何调整IE目前的安全级别