劣质的PHP代码简化


Posted in PHP onFebruary 08, 2010
<? 
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 相关文章推荐
PHP字符编码问题之GB2312 VS UTF-8解决方法
Jun 23 PHP
解析dedecms空间迁移步骤详解
May 15 PHP
php通过正则表达式记取数据来读取xml的方法
Mar 09 PHP
php查询相似度最高的字符串的方法
Mar 12 PHP
CodeIgniter扩展核心类实例详解
Jan 20 PHP
Yii遍历行下每列数据的方法
Oct 17 PHP
PHP面向对象程序设计方法实例详解
Dec 24 PHP
php mysql PDO 查询操作的实例详解
Sep 23 PHP
PHP实现字符串翻转功能的方法【递归与循环算法】
Nov 03 PHP
PHP图像处理技术实例总结【绘图、水印、验证码、图像压缩】
Dec 08 PHP
php session_decode函数用法讲解
May 26 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
Mar 26 PHP
php下把数组保存为文件格式的实例应用
Feb 08 #PHP
php date与gmdate的获取日期的区别
Feb 08 #PHP
php 获取当前访问的url文件名的方法小结
Feb 08 #PHP
用php实现的下载css文件中的图片的代码
Feb 08 #PHP
php不用内置函数对数组排序的两个算法代码
Feb 08 #PHP
Linux下将excel数据导入到mssql数据库中的方法
Feb 08 #PHP
PHPWind 发帖回帖Api PHP版打包下载
Feb 08 #PHP
You might like
PHP简单系统数据添加以及数据删除模块源文件下载
2008/06/07 PHP
ubuntu10.04配置 nginx+php-fpm模式的详解
2013/06/03 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十六)
2014/06/30 PHP
WordPress中&quot;无法将上传的文件移动至&quot;错误的解决方法
2015/07/01 PHP
Fleaphp常见函数功能与用法示例
2016/11/15 PHP
Vagrant(WSL)+PHPStorm+Xdebu 断点调试环境搭建
2019/12/13 PHP
JavaScript 实现模态对话框 源代码大全
2009/05/02 Javascript
复选框全选与全不选操作实现思路
2013/08/18 Javascript
让复选框只能选择一项的方法
2013/10/08 Javascript
JS获取html对象的几种方式介绍
2013/12/05 Javascript
Javascript实现的常用算法(如冒泡、快速、鸽巢、奇偶等)
2014/04/29 Javascript
javascript实现树形菜单的方法
2015/07/17 Javascript
JS+CSS简单树形菜单实现方法
2015/09/12 Javascript
jQuery带进度条全屏图片轮播特效代码分享
2020/06/28 Javascript
Bootstrap轮播插件简单使用方法介绍
2016/06/21 Javascript
jQuery ajax方法传递中文时出现中文乱码的解决方法
2016/07/25 Javascript
JavaScript常用代码书写规范的超全面总结
2016/09/11 Javascript
微信js-sdk预览图片接口及从拍照或手机相册中选图接口用法示例
2016/10/13 Javascript
nodejs实现超简单生成二维码的方法
2018/03/17 NodeJs
JavaScript实现简单的文本逐字打印效果示例
2018/04/12 Javascript
JavaScript实现的简单Tab点击切换功能示例
2018/07/06 Javascript
原生js实现3D轮播图
2020/03/21 Javascript
javascript 对象 与 prototype 原型用法实例分析
2019/11/11 Javascript
Python编程pygame模块实现移动的小车示例代码
2018/01/03 Python
Python 线性回归分析以及评价指标详解
2020/04/02 Python
html5本地存储_动力节点Java学院整理
2017/07/12 HTML / CSS
html5中svg canvas和图片之间相互转化思路代码
2014/01/24 HTML / CSS
Backcountry旗下的户外商品闪购网站:steep&cheap
2016/09/22 全球购物
学习党章思想汇报
2014/01/07 职场文书
单位在职证明范本
2014/01/09 职场文书
文明倡议书范文
2014/04/15 职场文书
大学毕业生个人自荐书
2014/07/02 职场文书
2015年七一建党节慰问信
2015/03/23 职场文书
领导干部学习心得体会
2016/01/23 职场文书
SqlServer: 如何更改表的文件组?(进而改变存储位置)
2021/04/05 SQL Server
win10更新失败无限重启解决方法
2022/04/19 数码科技