PHP安全技术之 实现php基本安全


Posted in PHP onSeptember 04, 2010

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

注册全局变量的出现曾经让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()脚本。

PHP 相关文章推荐
如何对PHP程序中的常见漏洞进行攻击
Oct 09 PHP
PHP中uploaded_files函数使用方法详解
Mar 09 PHP
php curl 登录163邮箱并抓取邮箱好友列表的代码(经测试)
Apr 07 PHP
mysql_num_rows VS COUNT 效率问题分析
Apr 23 PHP
php中使用preg_match_all匹配文章中的图片
Feb 06 PHP
destoon之一键登录设置
Jun 21 PHP
php检索或者复制远程文件的方法
Mar 13 PHP
PHP安装memcached扩展笔记
May 28 PHP
php使用Jpgraph绘制饼状图的方法
Jun 10 PHP
php版微信自动登录并获取昵称的方法
Sep 23 PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
Nov 18 PHP
php变量与JS变量实现不通过跳转直接交互的方法
Aug 25 PHP
小文件php+SQLite存储方案
Sep 04 #PHP
PHP中文件上传的一个问题
Sep 04 #PHP
PHP程序员面试 切忌急功近利(更需要注重以后的发展)
Sep 01 #PHP
PHP开发需要注意的安全问题
Sep 01 #PHP
php中函数的形参与实参的问题说明
Sep 01 #PHP
php数据库连接时容易出错的特殊符号问题
Sep 01 #PHP
PHP下利用header()函数设置浏览器缓存的代码
Sep 01 #PHP
You might like
那些年一起学习的PHP(三)
2012/03/22 PHP
PHP添加图片水印、压缩、剪切的封装类
2015/08/17 PHP
PHP数据库操作四:mongodb用法分析
2017/08/16 PHP
getElementById在任意一款浏览器中都可以用吗的疑问回复
2007/05/13 Javascript
css把超出的部分显示为省略号的方法兼容火狐
2008/07/23 Javascript
JavaScript 面向对象的 私有成员和公开成员
2010/05/13 Javascript
jQuery的实现原理的模拟代码 -2 数据部分
2010/08/01 Javascript
遍历jquery对象的代码分享
2011/11/02 Javascript
javascript小数四舍五入多种方法实现
2012/12/23 Javascript
jquery中通过父级查找进行定位示例
2013/06/28 Javascript
深入探讨JavaScript、JQuery屏蔽网页鼠标右键菜单及禁止选择复制
2014/06/10 Javascript
jQuery中on()方法用法实例
2015/01/19 Javascript
javascript设计模式--策略模式之输入验证
2015/11/27 Javascript
Javascript页面跳转常见实现方式汇总
2015/11/28 Javascript
jQuery zTree树插件简单使用教程
2017/01/10 Javascript
JS实现的DIV块来回滚动效果示例
2017/02/07 Javascript
javascript实现多张图片左右无缝滚动效果
2017/03/22 Javascript
jQuery+ajax实现修改密码验证功能实例详解
2017/07/06 jQuery
详解Web使用webpack构建前端项目
2017/09/23 Javascript
JS与CSS3实现图片响应鼠标移动放大效果示例
2018/05/04 Javascript
页面点击小红心js实现代码
2018/05/26 Javascript
vue实现侧边栏导航效果
2019/10/21 Javascript
使用wxpython实现的一个简单图片浏览器实例
2014/07/10 Python
python实现简单的计时器功能函数
2015/03/14 Python
python使用wmi模块获取windows下硬盘信息的方法
2015/05/15 Python
Python实现扣除个人税后的工资计算器示例
2018/03/26 Python
python绘制散点图并标记序号的方法
2018/12/11 Python
在python中按照特定顺序访问字典的方法详解
2018/12/14 Python
python3获取文件中url内容并下载代码实例
2019/12/27 Python
将不规则的Python多维数组拉平到一维的方法实现
2021/01/11 Python
详解CSS3中border-image的使用
2015/07/18 HTML / CSS
HTML5 3D书本翻页动画的实现示例
2019/08/28 HTML / CSS
Lampegiganten丹麦:欧洲领先的照明网上商店
2018/04/25 全球购物
服装促销活动方案
2014/02/23 职场文书
企业员工薪酬方案
2014/06/04 职场文书
党员干部形式主义个人整改措施
2014/09/17 职场文书