`
purpen
  • 浏览: 796908 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

php代码安全:增加这三行php代码的安全,性能和兼容性

阅读更多

如何改进以下的这行php代码:

<?
echo("<p>Search results for query: " .$_GET['query'] . ".</p>");
?>

 我觉得这段代码非常适合用来测试一个php开发人员是否合格。因为这段代码并没有要求太多记忆上的东西(例如函数的记忆),但是对安全,性能,兼容性上都做了考察。

 

改进后的代码:

 

<?php
if (isset($_GET['query']))
{
  echo '<p>Search results for query: ',
      htmlspecialchars($_GET['query'], ENT_QUOTES), '.</p>';
}
?>

 说明:

 

1、把php短标签(<?)换成了长标签(<?php),因为并非所有php环境都支持短标签

2、增加判断该全局变量是否存在,防止在某些环境下出现notice错误,而且在当前的例子里如果query无则没必要输出

3、把echo的”(”去掉,echo不是一个函数,没必要使用“(”

4、把字符串两边的双引号换成了单引号,提高了性能。因为双引号里的内容会被尝试进行变量和转义字符的解析

5、对query这个get变量进行html过滤。防止输出html,这可能会带来包括xss在内的一些危险

 

echo后面的字符串之间的间隔使用逗号而不是句号。因为句号之间的字符串会先被连接起来然后再输出,而,号只是按顺序输出。在这个例子里显然不需要先连接字符串。

分享到:
评论
1 楼 化蝶自在飞 2010-11-07  
小中见大.

相关推荐

    php+mysql案例源代码

    MySQL是一款流行的关系型数据库管理系统,其优点包括高性能、易用性和跨平台性。在PHP中,我们通常使用MySQLi或PDO_MySQL扩展来连接和操作MySQL数据库。关键概念包括: 1. 数据库:存储数据的容器。 2. 表:数据库中...

    php-sqlsrv 驱动php7.1 - php7.4

    《PHP与SQL Server的桥梁:php_sqlsrv驱动...正确安装和使用这个驱动,可以极大地提升PHP在SQL Server环境下的开发效率和代码质量。在实际项目中,开发者应充分利用其特性,优化数据库操作,确保系统的稳定性和高效性。

    PHP环境搭建:Windows 7下安装配置PHP+Apache+Mysql环境教程

    在本文中,我们将深入探讨如何在Windows 7操作系统上搭建PHP、Apache和MySQL的开发环境。...记得定期更新这些组件,以确保系统的安全性和最佳性能。同时,了解如何管理和优化这些服务也是提高开发效率的关键。

    PHP 团队代码规范.docx

    **PHP 团队代码规范详解** 在开发过程中,遵循统一的代码规范对于团队协作至关重要,它...遵循这些规范,可以提升PHP代码的质量和安全性,促进团队成员之间的有效沟通,降低维护成本,为项目的长期发展打下坚实基础。

    PHP 7安装使用体验之性能大提升,兼容性强,扩展支持不够(升级PHP要谨慎)

    【PHP 7安装使用体验之性能大提升与兼容性分析】 PHP 7的发布标志着PHP语言在性能上的一次重大飞跃。与之前的版本相比,PHP 7不仅在速度上有了显著提升,还增强了其兼容性,尽管在扩展支持方面尚有不足。在考虑升级...

    php-5.2.1-win32-installer

    1. **面向对象编程支持**:PHP 5.2引入了全面的面向对象编程特性,包括类、对象、接口、抽象类、继承、封装、多态等,极大地提升了代码的可维护性和复用性。 2. **增强的错误处理**:引入了异常处理机制,使得错误...

    php_memcache.dll

    本文将深入探讨PHP与Memcache.dll扩展的兼容性,以及如何在不同环境下安装和使用这个扩展。 PHP Memcache扩展是一个允许PHP与Memcached内存缓存系统交互的接口。Memcached是一种分布式内存对象缓存系统,旨在通过...

    Symfony 高性能php框架 v6.4.3.zip

    4. **兼容性**:Symfony支持多种数据库系统,如MySQL、PostgreSQL和SQLite等,并且与流行的PHP开发工具和IDE良好集成,如PhpStorm。 5. **RESTful API支持**:Symfony提供了强大的工具来构建和管理RESTful API,...

    ECshop 迁移到 PHP7版本时遇到的兼容性问题

    然而,随着技术的更新迭代,PHP7的推出带来了许多语法和功能上的改进,这导致ECShop在升级到PHP7时可能会遇到兼容性问题。本文主要探讨的是在将ECShop V2.7.3迁移至PHP7过程中遇到的三个关键兼容性问题及其解决方案...

    beast加密扩展Windows DLL

    "beast加密扩展Windows DLL" 是一个专门为PHP设计的安全扩展,用于增强PHP在...因此,尽管这个扩展可能仍有一定的实用性,但在选择加密方案时,开发者还需要考虑最新的安全标准和最佳实践,以确保数据的长期安全性。

    jspacker压缩与解码

    1. **删除空白字符**:jspacker会移除代码中的空格、换行符和注释,这是最基本的压缩步骤。 2. **变量名混淆**:通过对变量名进行替换,使得原始代码变得难以阅读,增加了反编译的难度。 3. **代码内联**:如果函数...

    apache运行php

    2. **LoadModule**:这行代码指示 Apache 加载一个名为 `php5_module` 的模块,该模块位于指定的 DLL 文件中 (`"C:\\ProgramFiles\\PHP\\php5apache2_2.dll"`)。这使得 Apache 可以识别并处理 PHP 请求。 - **...

    php_xhprof-nts-vc9-x86

    它允许开发者追踪每个函数的调用次数、执行时间和内存使用,从而找出代码中的瓶颈,进行有针对性的优化。 二、安装与配置 1. 获取扩展:在本例中,我们已经有了“php_xhprof.dll”文件,这是将xhprof集成到PHP环境...

    Windows下PHP5和Apache的安装与配置

    1. **环境兼容性** 确保 PHP 和 Apache 的版本相互兼容,以避免潜在的问题。 2. **安全设置** 在实际部署环境中,还需要注意安全设置,例如限制访问权限、加密数据传输等。 3. **性能优化** 可以通过调整 ...

    PHP非常漂亮在线编辑器

    它支持多种浏览器,包括Chrome、Firefox、Safari、Edge和Internet Explorer,具有良好的跨平台兼容性。 **二、主要功能** 1. **富文本编辑**:eWebEditor提供了标准的富文本编辑功能,如字体样式调整(加粗、斜体...

    PHP memcache 多版本拓展

    本篇文章主要围绕"PHP Memcache多版本拓展"进行详细讲解,包括其适用环境、安装步骤、使用方法以及与PHP7及以上版本的兼容性。 ### 一、适用环境 PHP Memcache多版本拓展库特别针对PHP7及以上版本进行了优化,覆盖...

    PHP基础教程PHP简介

    - **数据库兼容性**:PHP支持大量的数据库,如MySQL、PostgreSQL等。 - **图像处理能力**:可以使用PHP创建和处理图像。 - **高级功能**:PHP还支持多种高级功能和技术,如面向对象编程、异常处理等。 #### 4. PHP...

    php_mongo.dll各版本

    本文将深入探讨php_mongo.dll的特性,以及它在PHP 5.3至5.6版本中的兼容性和使用方法。 一、php_mongo.dll扩展简介 php_mongo.dll是PHP与MongoDB数据库交互的官方驱动,它提供了PHP语言层面与MongoDB的接口,使得...

    中文php配置文件php.ini

    这个选项主要是为了兼容旧代码,但在 PHP 5.4 及以后版本中已被弃用。 ##### 8. `safe_mode` **指令**: `safe_mode = Off` **作用**: 控制是否启用安全模式。安全模式限制了 PHP 脚本的一些功能,以防止潜在的安全...

Global site tag (gtag.js) - Google Analytics