增加这三行php代码的安全性能和兼容性
所属分类:
软件教程 / 编程开发
阅读数:
1814
收藏 0赞 0分享
今天在sitepoint上看到一篇文章,其中有一段是介绍如何改进以下的这行php代码。这段代码经常被他们用来测试应聘者。
CODE:
<?
echo("<p>Search results for query: " .$_GET['query'] . ".</p>");
?>
我觉得这段代码非常适合用来测试一个php开发人员是否合格。因为这段代码并没有要求太多记忆上的东西(例如函数的记忆),但是对安全,性能,兼容性上都做了考察。
大家也想想看如何改进代码。我在后面给出修改后的代码。
CODE:
<?php
if (isset($_GET['query']))
{
echo '<p>Search results for query: ',
htmlspecialchars($_GET['query'], ENT_QUOTES), '.</p>';
}
?>
改进的地方有 :
把php短标签(<?)换成了长标签(<?php),因为并非所有php环境都支持短标签
增加判断该全局变量是否存在,防止在某些环境下出现notice错误,而且在当前的例子里如果query无则没必要输出
把echo的”(”去掉,echo不是一个函数,没必要使用“(”
把字符串两边的双引号换成了单引号,提高了性能。因为双引号里的内容会被尝试进行变量和转义字符的解析。
对query这个get变量进行html过滤。防止输出html,这可能会带来包括xss在内的一些危险
echo后面的字符串之间的间隔使用逗号而不是句号。因为句号之间的字符串会先被连接起来然后再输出,而,号只是按顺序输出。在这个例子里显然不需要先连接字符串。(这一点我平时倒没太注意)
parse_url函数解析
描述 array parse_url ( string url ) 此函数返回一个关联数组,包含现有 URL 的各种组成部分。如果缺少了其中的某一个,则不会为这个组成部分创建数组项。组成部分为: scheme - ...
收藏 0赞 0分享
visualstudio2019怎么连接并使用VSTS?
visualstudio2019怎么连接并使用VSTS?visual studio 2019使用的时候,想要连接visual studio team service,该怎么操作呢?下面我们就来看看详细的教程,需要的朋友可以参考下
收藏 0赞 0分享
Sublime Text英文字母大小写怎么切换?
Sublime Text英文字母大小写怎么切换?Sublime Text中编程开发的时候,想要切换英文大小写,该怎么切换呢?下面我们就来看看详细的教程,需要的朋友可以参考下
收藏 0赞 0分享
CodeBlocks(vc开发工具)的入门使用教程
今天起我们将加大对其他编译器学习的支持,对于训练场中的题目,我们极力建议大家以CodeBlocks作为编程工具,因为VC6的种种问题及与训练场判题系统标准的不符,导致不少新同学被坑不少
收藏 0赞 0分享
Sublime代码编辑器怎么重新打开编码?
Sublime代码编辑器怎么重新打开编码?Sublime代码编辑器之前变价的编码想要打开,该怎么打开呢?下面我们就来看看详细的教程,需要的朋友可以参考下
收藏 0赞 0分享
vb怎么将年表分成四份季度表?
vb怎么将年表分成四份季度表?visual basic中的一个表想要分成多分表,该怎么实现呢?我们可以使用代码实现,下面我们就来看看详细的教程,需要的朋友可以参考下
收藏 0赞 0分享
VB怎么编写给表格快速添加批注的代码?
VB怎么编写给表格快速添加批注的代码?想要给表格中的数据添加批注,我们可以使用vb代码来实现,下面我们就来看看详细的教程,需要的朋友可以参考下
收藏 0赞 0分享
UltraEdit怎么修改选中文本的颜色?
UltraEdit怎么修改选中文本的颜色?UltraEdit编程开发的时候,想要修改文本的颜色,该怎么修改选中文本的颜色呢?下面我们就来看看详细的教程,需要的朋友可以参考下
收藏 0赞 0分享
查看更多