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的curl实现get和post的代码
Aug 23 PHP
Ajax+PHP 边学边练之四 表单
Nov 27 PHP
PHP开发规范手册之PHP代码规范详解
Jan 13 PHP
PHP常用开发函数解析之数组篇[未完结]
Jul 30 PHP
php中防止SQL注入的最佳解决方法
Apr 25 PHP
PHP APC的安装与使用详解
Jun 13 PHP
兼容各大浏览器带关闭按钮的漂浮多组图片广告代码
Jun 05 PHP
基于JQuery+PHP编写砸金蛋中奖程序
Sep 08 PHP
PHP MYSQL实现登陆和模糊查询两大功能
Feb 05 PHP
php微信扫码支付 php公众号支付
Mar 24 PHP
PHP whois查询类定义与用法示例
Apr 03 PHP
PHP实现批量修改文件名的方法示例
Sep 18 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去除换行符的方法小结(PHP_EOL变量的使用)
2013/02/16 PHP
PHP检测字符串是否为UTF8编码的常用方法
2014/11/21 PHP
Centos7安装swoole扩展操作示例
2020/03/26 PHP
实例:用 JavaScript 来操作字符串(一些字符串函数)
2007/02/15 Javascript
javascript Split方法,indexOf方法、lastIndexOf 方法和substring 方法
2009/03/21 Javascript
jQuery1.6 使用方法二
2011/11/23 Javascript
改进版通过Json对象实现深复制的方法
2012/10/24 Javascript
jquery 实现两Select 标签项互调示例代码
2014/09/25 Javascript
Jquery搜索父元素操作方法
2015/02/10 Javascript
基于jQuery实现的QQ表情插件
2015/08/25 Javascript
微信小程序 video组件详解
2016/10/25 Javascript
关于JavaScript中事件绑定的方法总结
2016/10/26 Javascript
jQuery插件HighCharts绘制的基本折线图效果示例【附demo源码下载】
2017/03/07 Javascript
基于layer.js实现收货地址弹框选择然后返回相应的地址信息
2017/05/26 Javascript
微信小程序开发之路由切换页面重定向问题
2018/09/18 Javascript
vue-better-scroll 的使用实例代码详解
2018/12/03 Javascript
基于Vue-Cli 打包自动生成/抽离相关配置文件的实现方法
2018/12/09 Javascript
vue实现百度下拉列表交互操作示例
2019/03/12 Javascript
React优化子组件render的使用
2019/05/12 Javascript
详解小程序中h5页面onShow实现及跨页面通信方案
2019/05/30 Javascript
JS中async/await实现异步调用的方法
2019/08/28 Javascript
vue实现输入框自动跳转功能
2020/05/20 Javascript
tensorflow TFRecords文件的生成和读取的方法
2018/02/06 Python
怎么使用pipenv管理你的python项目
2018/03/12 Python
python之文件读取一行一行的方法
2018/07/12 Python
Python input函数使用实例解析
2019/11/22 Python
matplotlib绘制多个子图(subplot)的方法
2019/12/03 Python
python3.4中清屏的处理方法
2020/07/06 Python
使用Python+Appuim 清理微信的方法
2021/01/26 Python
Python+Appium实现自动化清理微信僵尸好友的方法
2021/02/04 Python
ANINE BING官方网站:奢华的衣橱基本款和时尚永恒的单品
2019/11/26 全球购物
大三预备党员入党思想汇报
2014/01/08 职场文书
经理助理岗位职责
2014/03/05 职场文书
交通工程专业推荐信
2014/09/06 职场文书
教师批评与自我批评(群众路线)
2014/10/15 职场文书
python实现图片九宫格分割的示例
2021/04/25 Python