劣质的PHP代码简化

yipeiwu_com6年前PHP代码库
复制代码 代码如下:

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

这段代码的主要问题在于它把用户提交的数据直接显示到了网页上,从而产生XSS漏洞。其实有很多方法可以填补这个漏洞。那么,什么代码是我们想要的呢?
复制代码 代码如下:

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


这是最低要求。XSS漏洞用htmlspecialchars函数填补了,从而屏蔽了非法字符。
复制代码 代码如下:

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

能写出这样代码的人应该是我想要录用的人了:
*<?被替换成了<?php,这样更符合XML规范。
*在输出$_GET['query']值前先判断它是否为空。
*echo命令中多余的括号被去掉了。
*字符串用单引号限定,从而节省了PHP从字符串中搜索可替换的变量的时间。
*用逗号代替句号,节省了echo的时间。
*将ENT_QUOTES标识传递给htmlspecialchars函数,从而保证单引号也会被转义,虽然这并不是最主要的,但也算是一个良好的习惯

相关文章

PHP 创建文件(文件夹)以及目录操作代码

一、目录操作 首先是从目录读取的函数,opendir(),readdir(),closedir(),使用的时候是先打开文件句柄,而后迭代列出: 复制代码 代码如下: <?php $...

经典PHP加密解密函数Authcode()修复版代码

Authcode这个函数很多人都使用,这函数来自Discuz程序,用于加密解密字符串,可以设置钥匙(key)和过期时间,在很多时候都用得着。原版的函数代码可能会生成+、/、&这样的字符,...

php正则表达式验证(邮件地址、Url地址、电话号码、邮政编码)

本文实例需要验证的内容:邮件地址、Url地址、电话号码、邮政编码,验证方法分享给大家供大家参考,具体内容如下 1、电子邮件地址的校验 <?php /* 校验邮件地址*...

php生成二维码的几种方式整理及使用实例

php生成二维码的几种方式整理及使用实例

1.google开放api 复制代码 代码如下: $urlToEncode="http://bbs.lewanchina.com"; generateQRfromGoogle($u...

php 无限级分类 获取顶级分类ID

有这样一个表,id是分类的ID,name是分类名称,pid是上级分类的ID。 现在有个分类ID,程序要找到它上级的上级的上级……分类的ID,简单说就是找出顶级分类的ID。 比如“新鲜水果...