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和ACCESS写聊天室(七)
Oct 09 PHP
PHP 图像尺寸调整代码
May 26 PHP
详解php的魔术方法__get()和__set()使用介绍
Sep 19 PHP
对于PHP 5.4 你必须要知道的
Aug 07 PHP
不使用php api函数实现数组的交换排序示例
Apr 13 PHP
php环境无法上传文件的解决方法
Apr 30 PHP
PHP把MSSQL数据导入到MYSQL的方法
Dec 27 PHP
php实现过滤字符串中的中文和数字实例
Jul 29 PHP
php输出图像的方法实例分析
Feb 16 PHP
PHP基于openssl实现的非对称加密操作示例
Jan 11 PHP
Linux系统下安装PHP7.3版本
Jun 26 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模板中出现空行解决方法
2011/03/08 PHP
php函数与传递参数实例分析
2014/11/15 PHP
PHP遍历数组的方法汇总
2015/04/30 PHP
PHP中关键字interface和implements详解
2017/06/14 PHP
thinkphp框架使用JWTtoken的方法详解
2019/10/10 PHP
极酷的javascirpt,让你随意编辑任何网页
2007/02/25 Javascript
js 页面刷新location.reload和location.replace的区别小结
2009/12/24 Javascript
javascript中获取下个月一号,是星期几
2012/06/01 Javascript
Jquery如何实现点击时高亮显示代码
2014/01/22 Javascript
JavaScript中number转换成string介绍
2014/12/31 Javascript
javascript中获取class的简单实现
2016/07/12 Javascript
微信小程序 图片绝对定位(背景图片)
2017/04/05 Javascript
vue-cli+webpack项目 修改项目名称的方法
2018/02/28 Javascript
Webpack 之 babel-loader文件预处理器详解
2018/03/23 Javascript
mint-ui在vue中的使用示例
2018/04/05 Javascript
浅析vue给不同环境配置不同打包命令
2018/08/17 Javascript
浅谈js闭包理解
2019/04/01 Javascript
vue router 组件的高级应用实例代码
2019/04/08 Javascript
基于javascript实现放大镜特效
2020/12/03 Javascript
[31:47]夜魇凡尔赛茶话会 第三期01:选手知多少
2021/03/11 DOTA
python requests证书问题解决
2019/09/05 Python
使用Python脚本从文件读取数据代码实例
2020/01/19 Python
TensorFlow实现checkpoint文件转换为pb文件
2020/02/10 Python
Python使用Selenium实现淘宝抢单的流程分析
2020/06/23 Python
Python图像处理之膨胀与腐蚀的操作
2021/02/07 Python
canvas学习和滤镜实现代码
2018/08/22 HTML / CSS
美国餐厅用品和厨房设备批发网站:KaTom Restaurant Supply
2018/01/27 全球购物
英国蛋糕装饰用品一站式商店:Craft Company
2019/03/18 全球购物
初中考试作弊检讨书
2014/02/01 职场文书
大学生职业生涯规划大赛作品(精品)
2014/09/17 职场文书
企业法人代表证明书
2015/06/18 职场文书
七一表彰大会简报
2015/07/20 职场文书
你对自己的信用报告有过了解吗?
2019/07/09 职场文书
​(迎国庆)作文之我爱我的祖国
2019/09/19 职场文书
python如何为list实现find方法
2022/05/30 Python
详解Flutter自定义应用程序内键盘的实现方法
2022/06/14 Java/Android