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 相关文章推荐
详细介绍:Apache+PHP+MySQL配置攻略
Sep 05 PHP
在服务端进行目录建立、删除,文件上传、删除的过程的php代码
Sep 10 PHP
PHP下一个非常全面获取图象信息的函数
Nov 20 PHP
开启CURL扩展,让服务器支持PHP curl函数(远程采集)
Mar 19 PHP
解析PHP中DIRECTORY_SEPARATOR,PATH_SEPARATOR两个常量的作用
Jun 21 PHP
php 根据url自动生成缩略图并处理高并发问题
Jan 23 PHP
php把session写入数据库示例
Feb 26 PHP
PHP中4个加速、缓存扩展的区别和选用建议
Mar 12 PHP
php绘制一个扇形的方法
Jan 24 PHP
PHP防盗链的基本思想 防盗链的设置方法
Sep 25 PHP
thinkPHP5.0框架安装教程
Mar 25 PHP
关于PHP数组迭代器的使用方法实例
Nov 17 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
PHP4实际应用经验篇(7)
2006/10/09 PHP
php循环检测目录是否存在并创建(循环创建目录)
2011/01/06 PHP
PHP循环函数使用介绍之PHP基础入门教程
2013/09/21 PHP
mac下Apache + MySql + PHP搭建网站开发环境
2014/06/02 PHP
php生成唯一数字id的方法汇总
2015/11/18 PHP
PHP实现原比例生成缩略图的方法
2016/02/03 PHP
JavaScript的Function详细
2006/11/14 Javascript
ExtJS 工具栏 分页事件参数
2010/03/05 Javascript
jquery.combobox中文api和例子,修复了上面的小bug
2011/03/28 Javascript
jQuery关于导航条背景切换效果实现示例
2013/09/04 Javascript
window resize和scroll事件的基本优化思路
2014/04/29 Javascript
jQuery 隐藏和显示 input 默认值示例
2014/06/03 Javascript
jquery使用on绑定a标签无效 只能用live解决
2016/06/02 Javascript
jQuery 限制输入字符串长度
2016/06/20 Javascript
利用JS提交表单的几种方法和验证(必看篇)
2016/09/17 Javascript
详解JavaScript模块化开发
2016/12/04 Javascript
JavaScript常用正则函数用法示例
2017/01/23 Javascript
使用node.js对音视频文件加密的实例代码
2017/08/30 Javascript
动态加载JavaScript文件的3种方式
2018/05/05 Javascript
使用 electron 实现类似新版 QQ 的登录界面效果(阴影、背景动画、窗体3D翻转)
2018/10/23 Javascript
vue+导航锚点联动-滚动监听和点击平滑滚动跳转实例
2019/11/13 Javascript
js中位数不足自动补位扩展padLeft、padRight实现代码
2020/04/06 Javascript
Python实现的计算马氏距离算法示例
2018/04/03 Python
Flask之flask-session的具体使用
2018/07/26 Python
Python for循环与range函数的使用详解
2019/03/23 Python
Pyecharts 动态地图 geo()和map()的安装与用法详解
2020/03/25 Python
python 深度学习中的4种激活函数
2020/09/18 Python
利用python批量爬取百度任意类别的图片的实现方法
2020/10/07 Python
HTML5对比HTML4的主要改变和改进总结
2016/05/27 HTML / CSS
HTML5 层的叠加的实现
2020/07/07 HTML / CSS
城野医生官方海外旗舰店:风靡亚洲毛孔收敛水
2018/04/26 全球购物
幼儿老师求职信
2014/06/30 职场文书
领导干部群众路线教育实践活动剖析材料
2014/10/10 职场文书
基层党建工作简报
2015/07/21 职场文书
Python3 使用pip安装git并获取Yahoo金融数据的操作
2021/04/08 Python
详解pytorch创建tensor函数
2022/03/22 Python