劣质的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文本数据库的搜索方法
Oct 09 PHP
php一句话cmdshell新型 (非一句话木马)
Apr 18 PHP
php编程实现获取excel文档内容的代码实例
Jun 28 PHP
PHP+Memcache实现wordpress访问总数统计(非插件)
Jul 04 PHP
php实现的Timer页面运行时间监测类
Sep 24 PHP
PHP使用GETDATE获取当前日期时间作为一个关联数组的方法
Mar 19 PHP
php求一个网段开始与结束IP地址的方法
Jul 09 PHP
PHP目录操作实例总结
Sep 27 PHP
yii2.0整合阿里云oss的示例代码
Sep 19 PHP
CI框架附属类用法分析
Dec 26 PHP
PHP+Oracle本地开发环境搭建方法详解
Apr 01 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
Nov 14 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实现计数器方法小结
2015/01/05 PHP
查找Oracle高消耗语句的方法
2014/03/22 Javascript
使用jQuery异步加载 JavaScript脚本解决方案
2014/04/20 Javascript
jQuery html()方法使用不了无法显示内容的问题
2014/08/06 Javascript
jQuery插件实现大图全屏图片相册
2015/03/14 Javascript
JS原型、原型链深入理解
2016/02/27 Javascript
HTML5 实现的一个俄罗斯方块实例代码
2016/09/19 Javascript
javascript self对象使用详解
2016/10/18 Javascript
js Canvas绘制圆形时钟效果
2017/02/17 Javascript
js css3实现图片拖拽效果
2017/03/04 Javascript
解决在vue项目中,发版之后,背景图片报错,路径不对的问题
2018/03/06 Javascript
Angularjs中的$apply及优化使用详解
2018/07/02 Javascript
微信小程序select下拉框实现效果
2019/05/15 Javascript
js实现轮播图效果 z-index实现轮播图
2020/01/17 Javascript
vue请求数据的三种方式
2020/03/04 Javascript
toString.call()通用的判断数据类型方法示例
2020/08/28 Javascript
TypeScript 运行时类型检查补充工具
2020/09/28 Javascript
如何手动实现一个 JavaScript 模块执行器
2020/10/16 Javascript
[02:36]DOTA2英雄基础教程 一击致命幻影刺客
2013/12/06 DOTA
python求crc32值的方法
2014/10/05 Python
详解Python中最难理解的点-装饰器
2017/04/03 Python
python中使用%与.format格式化文本方法解析
2017/12/27 Python
用Python实现数据的透视表的方法
2018/11/16 Python
django和vue实现数据交互的方法
2019/08/21 Python
浅析Python 简单工厂模式和工厂方法模式的优缺点
2020/07/13 Python
Python调用JavaScript代码的方法
2020/10/27 Python
CSS3,线性渐变(linear-gradient)的使用总结
2017/01/09 HTML / CSS
荷兰手表网站:Watch2Day
2018/07/02 全球购物
英国创新设计文具、卡片和礼品包装网站:Paperchase
2018/07/14 全球购物
我的中国梦演讲稿高中篇
2014/08/19 职场文书
2014年领班工作总结
2014/11/25 职场文书
培训班通知
2015/04/25 职场文书
jQuery实现影院选座订座效果
2021/04/13 jQuery
python爬虫框架feapde的使用简介
2021/04/20 Python
python基于tkinter实现gif录屏功能
2021/05/19 Python
java泛型通配符详解
2021/07/25 Java/Android