劣质的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中实现Javascript的escape()函数代码
Aug 08 PHP
windows下zendframework项目环境搭建(通过命令行配置)
Dec 06 PHP
php实现与erlang的二进制通讯实例解析
Jul 23 PHP
Laravel模板引擎Blade中section的一些标签的区别介绍
Feb 10 PHP
PHP curl伪造IP地址和header信息代码实例
Apr 27 PHP
PHP的Laravel框架结合MySQL与Redis数据库的使用部署
Mar 21 PHP
简单解析PHP程序的运行流程
Jun 23 PHP
微信公众号开发之语音消息识别php代码
Aug 08 PHP
PHP页面输出时js设置input框的选中值
Sep 30 PHP
php中Ioc(控制反转)和Di(依赖注入)
May 07 PHP
PHP实现的简单AES加密解密算法实例
May 29 PHP
PHP封装mysqli基于面向对象的mysql数据库操作类与用法示例
Feb 25 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音乐采集(部分代码)
2007/02/14 PHP
攻克CakePHP系列三 表单数据增删改
2008/10/22 PHP
php获取Google机器人访问足迹的方法
2015/04/15 PHP
Zend Framework教程之请求对象的封装Zend_Controller_Request实例详解
2016/03/07 PHP
js不是基础的基础
2006/12/24 Javascript
学习从实践开始之jQuery插件开发 对话框插件开发
2012/04/26 Javascript
js调用浏览器打印模块实现点击按钮触发自定义函数
2014/03/21 Javascript
JS导出PDF插件的方法(支持中文、图片使用路径)
2016/07/12 Javascript
用jquery获取自定义的标签属性的值简单实例
2016/09/17 Javascript
详解微信小程序——自定义圆形进度条
2016/12/29 Javascript
JavaScript数据结构中串的表示与应用实例
2017/04/12 Javascript
详解Node项目部署到云服务器上
2017/07/12 Javascript
React 组件间的通信示例
2018/06/14 Javascript
Vue 3.x+axios跨域方案的踩坑指南
2019/07/04 Javascript
vue 公共列表选择组件,引用Vant-UI的样式方式
2020/11/02 Javascript
VUE项目实现主题切换的多种方法
2020/11/26 Vue.js
[28:57]EG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/16 DOTA
2款Python内存检测工具介绍和使用方法
2014/06/01 Python
Python查询阿里巴巴关键字排名的方法
2015/07/08 Python
python实现数据导出到excel的示例--普通格式
2018/05/03 Python
python的内存管理和垃圾回收机制详解
2019/05/18 Python
python实现DEM数据的阴影生成的方法
2019/07/23 Python
英格兰橄榄球商店:England Rugby Store
2016/12/17 全球购物
Book Depository亚太地区:一家领先的国际图书零售商
2019/05/05 全球购物
美国专业消费电子及摄影器材网站:B&H Photo Video
2019/12/18 全球购物
蔻驰英国官网:COACH英国
2020/07/19 全球购物
党员年终民主评议的自我评价
2013/11/05 职场文书
会计专业应届生求职信
2013/11/24 职场文书
C++程序员求职信
2014/05/07 职场文书
大学生求职信范文
2014/05/24 职场文书
单位委托书范本(3篇)
2014/09/18 职场文书
个人政治思想总结
2015/03/05 职场文书
2015年实习生工作总结报告
2015/04/28 职场文书
绿里奇迹观后感
2015/06/15 职场文书
军训心得体会范文(2016最新篇)
2016/01/11 职场文书
用golang如何替换某个文件中的字符串
2021/04/25 Golang