首页  > 计算机 >

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

本文按署名·非商业用途·保持一致授权
作者:  ,发表于2007年05月26日09时15分 

今天在sitepoint上看到一篇文章,其中有一段是介绍如何改进以下的这行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>';
}
?>

改进的地方有 :



2个评论

  1. Dash:

    surf同志的技术水准已经向我又接近了一步,鉴定完毕:D

  2. 卡飞菲:

    有个bug!这里没有考虑到打开 magic_quotes_gpc 时的情况,事实上默认都是打开的。那么用户输入的某些符号会被篡改。

    而且,如果输入为空,那么将什么都得不到,貌似没什么问题,实际上单输出一个 “Search results for query:” 已经是公认的国际标准了!聊胜于无啊!

    还有,isset($_GET['xxx']) 也貌似没有什么问题,但如果这段代码在命令行下执行,根本就不会有 $_GET 变量,记得在PHP早一点的版本,会有一个 Notice。

    果然,又向dash靠近了一步,鉴定完毕!

发表评论

  本站文章若无注明,则以署名·非商业用途·保持一致授权
  桂ICP备05004302号 感谢WordPress提供本程序 本模板下载