劣质的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 相关文章推荐
Search Engine Friendly的URL设计
Oct 09 PHP
php设计模式 Adapter(适配器模式)
Jun 26 PHP
解析在PHP中使用全局变量的几种方法
Jun 24 PHP
Codeigniter框架实现获取分页数据和总条数的方法
Dec 05 PHP
php中curl使用指南
Feb 05 PHP
PHP几个实用自定义函数小结
Jan 25 PHP
PHP设计模式之观察者模式实例
Feb 22 PHP
win10环境PHP 7 安装配置【教程】
May 09 PHP
PHP中如何使用Redis接管文件存储Session详解
Nov 28 PHP
PHP Laravel中的Trait使用方法
Jan 20 PHP
laravel 时间格式转时间戳的例子
Oct 11 PHP
laravel-admin 实现在指定的相册下添加照片
Oct 21 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 获取全局变量的代码
2011/04/21 PHP
解决Codeigniter不能上传rar和zip压缩包问题
2014/03/07 PHP
使用ob系列函数实现PHP网站页面静态化
2014/08/13 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
2020/03/29 PHP
ExtJS 2.0实用简明教程 之获得ExtJS
2009/04/29 Javascript
Javascript 函数对象的多重身份
2009/06/28 Javascript
JavaScript中常用的运算符小结
2012/01/18 Javascript
javaScript中的this示例学习详解及工作原理
2014/01/13 Javascript
jQuery的基本概念与高级编程
2015/05/14 Javascript
JQuery插入DOM节点的方法
2015/06/11 Javascript
JS实现统计复选框选中个数并提示确定与取消的方法
2015/07/01 Javascript
jQuery Mobile开发中日期插件Mobiscroll使用说明
2016/03/02 Javascript
基于BootStrap Metronic开发框架经验小结【六】对话框及提示框的处理和优化
2016/05/12 Javascript
前端js实现文件的断点续传 后端PHP文件接收
2016/10/14 Javascript
Javascript 函数的四种调用模式
2016/11/05 Javascript
jQuery实现的仿百度,仿谷歌搜索下拉框效果示例
2016/12/30 Javascript
vue router demo详解
2017/10/13 Javascript
AngularJS标签页tab选项卡切换功能经典实例详解
2018/05/16 Javascript
vue配置多页面的实现方法
2018/05/22 Javascript
Vue 实现拖动滑块验证功能(只有css+js没有后台验证步骤)
2018/08/24 Javascript
一次让你了解全部JavaScript的作用域
2019/06/24 Javascript
使用layui的router来进行传参的实现方法
2019/09/06 Javascript
深入理解python中的select模块
2017/04/23 Python
python实现数独游戏 java简单实现数独游戏
2018/03/30 Python
tensorflow实现简单逻辑回归
2018/09/07 Python
wxPython实现列表增删改查功能
2019/11/19 Python
python报错: 'list' object has no attribute 'shape'的解决
2020/07/15 Python
Numpy(Pandas)删除全为零的列的方法
2020/09/11 Python
微软新西兰官方网站:Microsoft New Zealand
2018/08/17 全球购物
交通安全横幅标语
2014/10/07 职场文书
2014年组织部工作总结
2014/11/14 职场文书
少先队辅导员事迹材料
2014/12/24 职场文书
幼儿园六一主持词
2015/06/30 职场文书
干货干货!2019最新优秀创业计划书
2019/03/21 职场文书
MySQL中dd::columns表结构转table过程及应用详解
2022/09/23 MySQL