实现PHP基本安全的11条准则
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条准则相关推荐
- Docker学习总结(34)——新手使用Docker的11条准则
Docker的具有很多的优点,比如:一体化--将操作系统.库版本.配置文件.应用程序等全部打包装在容器里.从而保证 QA 所测试的镜像 (image) 会携带同样的行为到达生产环境:轻量--内存占用极 ...
- 转:高效代码审查的八条准则和十个经验
代码审查(Code Review)是软件开发中常用的手段,和QA测试相比,它更容易发现和架构以及时序相关等较难发现的问题,还可以帮助团队成员提高编程技能,统一编程风格等. 1. 代码审查要求团队有良好 ...
- (转载)做好一个系统分析师、项目经理75条准则(一)
(转载)做好一个系统分析师.项目经理75条准则(一) 1. 你们的项目组使用源代码管理工具了么? 应该用.VSS.CVS.PVCS.ClearCase.CCC/Harvest.FireFly都可以 ...
- 高效代码审查的八条准则和十个经验
代码审查(Code Review)是软件开发中常用的手段,和QA测试相比,它更容易发现和架构以及时序相关等较难发现的问题,还可以帮助团队成员提高编程技能,统一编程风格等. 1. 代码审查要求团队有良好 ...
- Unobtrusive JavaScript 不唐突的JavaScript的七条准则
Unobtrusive JavaScript是一种将Javascript从HTML结构抽离的设计概念,避免在HTML标签中夹杂一堆onchange.onclick--等属性去挂载Javascript事 ...
- 福利 | 如何创造可信的AI?人工智能大牛盖瑞·马库斯的11条建议
文末有福利哦~ (本文来自湛庐文化策划出版新书<如何创造可信的AI>,作者盖瑞·马库斯(Gary Marcus ) 欧内斯特·戴维斯(Ernest Davis)) 在人工智能领域中,深度 ...
- 优秀程序员写代码一定会用的 11 条经验
这是一篇值得收藏起来,隔三差五就拿来重读的文章!因为作者向你保证,他"遇到的所有糟糕的代码,都是因为没采纳这些实践经验.而任何一段优秀的代码,都采纳了至少部分实践经验." 还等什么 ...
- pgsql 前10条_白沙湾南片区11条新建道路最新进度及建成时间,已建成一条!还有一条将通车...
原标题:白沙湾南片区11条新建道路最新进度及建成时间,已建成一条!还有一条将通车 近日,@白沙河畔 从流亭街道办事处获悉:为了完善白沙湾南片区及仙家寨南片区路网及基础设施配套,为周边区域提供良好的生活 ...
- 11条建议让你成为优秀的JavaScript程序员
原文: 11条建议让你成为优秀的JavaScript程序员 每个编程语言都有他自己的个性,那么我们如何高效地掌握JavaScript呢?本 JavaScript教程 给你11条编程建议,让你成为优秀的 ...
最新文章
- G - Shuffle‘m Up POJ - 3087
- for语句之打印三角形问题
- MySql数据库查询结果用表格输出PHP代码示例
- STM32 基础系列教程 25 - USB_HID_mouse
- C语言 | 求1000以内的所有完数及求2000以内最大的完数(C源代码)
- 按汉字首字母排序(sql语句)
- android软件的data使用方法,实例讲解Android中SQLiteDatabase使用方法
- mybatis java类注解式_Spring整合Mybatis注解方式
- npm 缓存_npm缓存:无名英雄
- 去哪儿-19-detail-ajax
- Go如何对数组切片进行去重
- Windows安装CUDAcuDNNanaconda
- git diff生成patch用法
- Leetcode 233.数字1的个数
- Mybatis插件动态数据库链接
- spring boot企业合同管理系统毕业设计源码161456
- 三维扫描仪中投射模块/投影仪推荐
- 软件民工的幸福生活3
- duilib库combo box提供输入字符模糊查询
- CAD梦想画图中的“绘图工具——椭圆弧”
热门文章
- NMAP分布式扫描工具dnmap
- Windows自带Android模拟器启动失败
- Unity 2D游戏开发教程之精灵的死亡和重生
- compareto方法_compare方法和compareTo方法区别
- pix2pixhd_一文读懂GAN, pix2pix, CycleGAN和pix2pixHD
- ifconfig 安装_第一章Linux服务器环境搭建之JDK安装
- python3基本知识_Python3 - 基础知识、基本了解
- linux usr local权限,OS X权限被拒绝/ usr/local/lib
- python中哪里用到缩进_Python编程常见十大错误
- iacr crypto 级别_以防范病毒和黑客的侵犯,Windows 10如何调整IE目前的安全级别