多年来,PHP一直是一个稳定的、廉价的运行基于web应用程序的平台。像大多数基于web的平台一样,PHP也是容易受到外部攻击的,下面说说PHP网站安全 、PHP程序安全的几个措施。
开发人员、数据库架构师和系统管理员在部署PHP应用程序到服务器之前都应该采取预防措施。大部分预防措施可以通过几行代码或者把应用程序设置稍作调整即可完成。
#1:管理安装脚本
如果开发人员已经安装了一套第三方应用程序的PHP脚本,该脚本用于安装整个应用程序的工作组件,并提供一个接入点。大多数第三方软件包都建议在安装后,删除该目录包含的安装脚本。但开发人员希望保留安装脚本,他们可以创建一个.htaccess文件来控制管理访问目录。
AuthType Basic
AuthName “Administrators Only”
AuthUserFile /usr/local/apache/passwd/passwords
Require valid-user
任何未经授权的用户,如果试图访问一个受保护的目录,将会看到一个提示,要求输入用户名和密码。密码必须匹配指定的“passwords”文件中的密码。
#2:头文件
在很多情况下,开发人员可以将分布在应用程序的几个脚本包含进一个脚本里。这些脚本将包含一个“include”指令,集成单个文件到原始页面的代码里。当“include”文件包含敏感信息,包括用户名、密码和数据库访问密钥时,该文件的扩展名应该命名成“.php ",而不是典型的“.inc”扩展。“.php”扩展确保php引擎将处理该文件,并防止任何未经授权的访问。
#3: MD5 vs. SHA
在某些情况下,用户最终会创建自己的用户名和密码,而站点管理员通常会对表单提交的密码加密,并保存在数据库中。在过去的几年中,开发人员会使用MD5(消息摘要算法)函数,加密成一个128位的字符串密码。今天,很多开发人员使用SHA-1(安全散列算法)函数来创建一个160位的字符串。
#4: 自动全局变量
php.ini文件中包含的设置称为“register_globals”。P服务器会根据register_globals的设置,将会为服务器变量和查询字符串自动创建全局变量。在安装第三方的软件包时,比如内容管理软件,像Joomla和Drupal,安装脚本将引导用户把register_globals设置为“关闭”。将设置改变为“关闭”可以确保未经授权的用户无法通过猜测变量名称及验证密码来访问数据。
#5: 初始化变量和值
许多开发人员都落入了实例化变量不赋值的陷阱,原因可能由于时间的限制而分心,或缺乏努力。身份验证过程中的变量,应该在用户登录程序开始前就有值。这个简单的步骤可以防止用户绕过验证程序或访问站点中某些他们没有权限的区域。
原文地址:http://www.aichengxu.com/article/PHP/919_1.html
分享到:
相关推荐
被该病毒感染的Excel文档会包含几个宏,包括auto_open宏、cop宏和escape宏。这些宏能够在Excel文档被打开时执行,感染新的Excel文档。因此,用户需要保持反病毒软件的更新,并且不要轻易打开来源不明的文件,以免...
在使用PHP开发安全应用的过程中,有几个重要的注意事项: 1. **保持操作系统和补丁的更新**:在编译PHP之前,确保操作系统是最新的,并且已安装所有必要的安全补丁,这是构建安全基础的重要步骤。 2. **选择合适的...
在分析和学习这个源码时,开发者可以从以下几个方面入手: 1. 架构设计:了解整体架构,包括MVC(模型-视图-控制器)模式的应用,以及各模块间的交互。 2. 数据库设计:查看数据库表结构,理解如何存储和管理菜单、...
在配置PHP以提高其安全性时,有几个关键设置和策略需要关注。这些措施旨在防止恶意攻击,如目录遍历、代码注入以及不必要的系统权限滥用。以下是一些重要的PHP安全配置步骤: 1. **启用安全模式**:安全模式是PHP的...
以上只是一个基本的PHP实现MySQL网站安装程序的框架,实际项目中可能需要考虑更多的细节,比如错误处理、安全措施(防止SQL注入)、用户界面设计等。同时,提供的`demo`文件可能包含更具体的实现代码和示例,用于...
PHP寄生虫繁殖劫持程序V3.0的具体工作原理可能包括以下几个步骤: 1. **入侵与植入**:通过SQL注入、跨站脚本(XSS)等常见攻击手段,将寄生虫代码注入到目标网站的数据库或源代码中。 2. **自我复制**:一旦植入...
在PHP编程中,整站程序的核心组成部分包括以下几个方面: 1. 数据库设计:通常使用MySQL作为后台数据库,存储网址、分类信息等。数据库结构设计合理,包括链接ID、链接标题、链接URL、分类ID、描述等字段。 2. MVC...
这样的系统通常会包含以下几个关键部分: 1. **数据库设计**:在PHP网站中,数据通常存储在关系型数据库如MySQL中。大型房产程序可能包含多个数据库表,如房源信息表(包括房型、面积、价格等)、用户表(管理用户...
该程序的核心功能可能包括以下几个方面: 1. **频道列表**:程序应该包含一个频道列表,用户可以通过这个列表选择想要观看的电视频道。频道列表可以动态更新,确保用户能够访问到最新的直播内容。 2. **流媒体...
最近几年,随着管理员和企业安全意识的整体提高,早期的靠一个溢出程序就攻破一个网络的日子已经一去不返。目前,多数的攻击是从 Web 人手,使用最多的手段是 SQL 注入攻击。 三、可能的危害 通过 URL 输入,可以...
在微信小程序的开发中,前端部分主要涉及以下几个核心知识点: 1. **WXML(WeChat Markup Language)**:这是微信小程序用于定义页面结构的标记语言,类似于HTML,但有其独特的语法和特性,如数据绑定和事件处理。 ...
在这个“微信小程序--报修系统”的毕业设计中,学生可能需要涵盖以下几个方面的技术: 1. **微信小程序开发**:使用微信开发者工具,学习并掌握WXML(结构语言)和WXSS(样式语言)来构建用户界面,以及JavaScript...
本主题主要分析和研究PHP技术开发的网站的安全漏洞和防御方法。...此外,本文建立的信息安全网站从网站安全监测、软件系统漏洞监测、安全新闻链接和服务器安全监测等几个功能实现了全面的网站信息安全监测。
作为一款下载管理类应用,它可能涉及到以下几个重要的IT知识点: 1. **PHP编程语言**:PHP(Hypertext Preprocessor)是一种广泛使用的开源脚本语言,特别适合Web开发。在这个程序中,PHP用于处理服务器端逻辑,如...
下面将详细介绍几个重要的PHP安全基础知识。 ##### 1.1 PHP安全直觉 在进行PHP开发时,建立正确的安全意识至关重要。这种“安全直觉”可以帮助开发者识别潜在的安全漏洞,并采取相应措施来加强代码的安全性。例如...
综上所述,这个压缩包中的知识点主要围绕以下几个方面: 1. **PHP基础**:包括语法、变量、控制结构、函数、类和对象等,这些都是理解和修改源码的基础。 2. **Web安全原理**:如何预防SQL注入、跨站脚本(XSS)、...
这个PHP程序旨在提供一个高效、易用且功能丰富的在线交易平台,帮助商家展示商品、管理订单、处理支付以及与其他商家建立合作关系。 该程序的核心特点可能包括以下几点: 1. **多用户系统**:B2B网站通常支持多个...
总结起来,提高PHP代码的安全性需要关注以下几个方面: 1. 验证和过滤用户输入,避免任意文件写入。 2. 使用内置函数或安全的编程模式来处理文件操作。 3. 对用户输入进行转义,防止XSS攻击。 4. 使用预处理语句...
为了防止SQL Injection,可以从以下几个方面着手: ##### 3.1 理解SQL Injection的基本原理 SQL Injection主要是通过在输入字段中插入SQL命令,这些命令可能被数据库执行。通常情况下,这些命令会改变原有的查询...