劣质的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制作的意见反馈表源码
Mar 11 PHP
PHP DataGrid 实现代码
Aug 12 PHP
php数组函数序列之prev() - 移动数组内部指针到上一个元素的位置,并返回该元素值
Oct 31 PHP
PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]
Dec 16 PHP
php生成唯一的订单函数分享
Feb 02 PHP
PHP程序中使用adodb连接不同数据库的代码实例
Dec 19 PHP
4种PHP异步执行的常用方式
Dec 24 PHP
利用PHP将图片转换成base64编码的实现方法
Sep 13 PHP
php版微信自动登录并获取昵称的方法
Sep 23 PHP
PHP基于自定义函数实现的汉字转拼音功能实例
Sep 30 PHP
小程序微信退款功能实现方法详解【基于thinkPHP】
May 05 PHP
php中array_fill函数的实例用法
Mar 02 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加水印的代码(支持半透明透明打水印,支持png透明背景)
2013/01/17 PHP
php中的静态变量的基本用法
2014/03/20 PHP
JavaScript中“+=”的应用
2007/02/02 Javascript
使用JS 清空File控件的路径值
2013/07/08 Javascript
Extjs3.0 checkboxGroup 动态添加item实现思路
2013/08/14 Javascript
基于jQuery实现Div窗口震动特效代码-代码简单
2015/08/28 Javascript
简单谈谈Javascript中类型的判断
2015/10/19 Javascript
JavaScript实现类似拉勾网的鼠标移入移出效果
2016/10/27 Javascript
bootstrap网格系统使用方法解析
2017/01/13 Javascript
Node.js 利用cheerio制作简单的网页爬虫示例
2018/03/01 Javascript
vue-rx的初步使用教程
2018/09/21 Javascript
angular中如何绑定iframe中src的方法
2019/02/01 Javascript
javascript刷新父页面方法汇总详解
2019/10/10 Javascript
关于JavaScript数组去重的一些理解汇总
2020/09/10 Javascript
python socket 超时设置 errno 10054
2014/07/01 Python
Python基于Tkinter实现的记事本实例
2015/06/17 Python
Python调用C++程序的方法详解
2017/01/24 Python
python生成随机图形验证码详解
2017/11/08 Python
python 读文件,然后转化为矩阵的实例
2018/04/23 Python
python用plt画图时,cmp设置方法
2018/12/13 Python
Python实现E-Mail收集插件实例教程
2019/02/06 Python
Pycharm如何打断点的方法步骤
2019/06/13 Python
详细整理python 字符串(str)与列表(list)以及数组(array)之间的转换方法
2019/08/30 Python
Django 设置多环境配置文件载入问题
2020/02/25 Python
python代码实现TSNE降维数据可视化教程
2020/02/28 Python
Tensorflow tf.tile()的用法实例分析
2020/05/22 Python
opencv 查找连通区域 最大面积实例
2020/06/04 Python
PyCharm+PyQt5+QtDesigner配置详解
2020/08/12 Python
CAT鞋美国官网:CAT Footwear
2017/11/27 全球购物
欧尚俄罗斯网上超市:Auchan俄罗斯
2018/05/03 全球购物
艺术系应届生的自我评价
2013/10/19 职场文书
运动会通讯稿150字
2014/02/15 职场文书
教师学期个人总结
2015/02/11 职场文书
春季运动会加油词
2015/07/18 职场文书
工程移交协议书
2016/03/24 职场文书
SQL使用复合索引实现数据库查询的优化
2022/05/25 SQL Server