劣质的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 12 PHP
PHP+ajax 无刷新删除数据
Feb 20 PHP
仿AS3实现PHP 事件机制实现代码
Jan 27 PHP
php 无法加载mcrypt.dll的解决办法
Apr 03 PHP
php输出echo、print、print_r、printf、sprintf、var_dump的区别比较
Jun 21 PHP
解析php常用image图像函数集
Jun 24 PHP
php数组转换js数组操作及json_encode的用法详解
Oct 26 PHP
PHP基于CURL进行POST数据上传实例
Nov 10 PHP
PHP使用strtotime获取上个月、下个月、本月的日期
Dec 30 PHP
PHP实现的简单排列组合算法应用示例
Jun 20 PHP
PHP设计模式之委托模式定义与用法简单示例
Aug 13 PHP
KindEditor在php环境下上传图片功能集成的方法示例
Jul 20 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保存二进制原始数据为图片的程序代码
2014/10/14 PHP
PHP策略模式定义与用法示例
2017/07/27 PHP
Dom加载让图片加载完再执行的脚本代码
2008/05/15 Javascript
JQuery 选择器、过滤器介绍
2011/02/14 Javascript
JavaScript中获取样式的原生方法小结
2014/10/08 Javascript
javascript实现依次输入input自动定焦
2014/12/23 Javascript
jquery实现文本框textarea自适应高度
2016/03/09 Javascript
jQuery实现下拉加载功能实例代码
2016/04/01 Javascript
一个用jquery写的判断div滚动条到底部的方法【推荐】
2016/04/29 Javascript
Zepto实现密码的隐藏/显示
2017/04/07 Javascript
详解vue.js的devtools安装
2017/05/26 Javascript
JavaScript之underscore_动力节点Java学院整理
2017/07/03 Javascript
详解jQuery中的easyui
2018/09/02 jQuery
vue3.0 CLI - 3.2 路由的初级使用教程
2018/09/20 Javascript
解决vue初始化项目时,一直卡在Project description上的问题
2019/10/31 Javascript
JS call()及apply()方法使用实例汇总
2020/07/11 Javascript
python实现监控windows服务并自动启动服务示例
2014/04/17 Python
Python抽象类的新写法
2015/06/18 Python
用Python设计一个经典小游戏
2017/05/15 Python
Python语言的变量认识及操作方法
2018/02/11 Python
Python装饰器用法示例小结
2018/02/11 Python
Python 使用PIL中的resize进行缩放的实例讲解
2018/08/03 Python
pygame游戏之旅 python和pygame安装教程
2018/11/20 Python
PyCharm+PySpark远程调试的环境配置的方法
2018/11/29 Python
使用pandas把某一列的字符值转换为数字的实例
2019/01/29 Python
pytz格式化北京时间多出6分钟问题的解决方法
2019/06/21 Python
Django 权限管理(permissions)与用户组(group)详解
2020/11/30 Python
CSS中几个与换行有关的属性简明总结
2014/04/15 HTML / CSS
HTML5之SVG 2D入门6—视窗坐标系与用户坐标系及变换概述
2013/01/30 HTML / CSS
Sixt美国租车:高端豪华车型自驾体验
2017/09/02 全球购物
美国高品质个性化珠宝销售网站:Jewlr
2018/05/03 全球购物
12月红领巾广播稿
2014/02/13 职场文书
感谢信模板大全
2015/01/23 职场文书
信息技术远程培训心得体会
2016/01/09 职场文书
爱岗敬业事迹材料
2019/06/20 职场文书
实操Python爬取觅知网素材图片示例
2021/11/27 Python