劣质的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 相关文章推荐
用session做客户验证时的注意事项
Oct 09 PHP
PHP用户指南-cookies部分
Oct 09 PHP
深入extjs与php参数交互的详解
Jun 25 PHP
PHP设置图片文件上传大小的具体实现方法
Oct 11 PHP
教你如何使用php session
Oct 28 PHP
php fsockopen解决办法 php实现多线程
Jan 20 PHP
php 不使用js实现页面跳转
Feb 11 PHP
php去掉URL网址中带有PHPSESSID的配置方法
Jul 08 PHP
php中随机函数mt_rand()与rand()性能对比分析
Dec 01 PHP
PHP利用APC模块实现大文件上传进度条的方法
Oct 29 PHP
PHP获取input输入框中的值去数据库比较显示出来
Nov 16 PHP
详解阿里云视频直播PHP-SDK接入教程
Jul 09 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 FPDF类库应用实现代码
2009/03/20 PHP
php提取字符串中网站url地址的方法
2014/12/03 PHP
redis查看连接数及php模拟并发创建redis连接的方法
2016/12/15 PHP
JQuery1.4+ Ajax IE8 内存泄漏问题
2010/10/15 Javascript
IE8提示Invalid procedure call or argument 异常的解决方法
2012/09/30 Javascript
javascript 实现键盘上下左右功能的小例子
2013/09/15 Javascript
使用jQuery设置disabled属性与移除disabled属性
2014/08/21 Javascript
angularJS结合canvas画图例子
2015/02/09 Javascript
jquery 插件实现多行文本框[textarea]自动高度
2015/03/04 Javascript
Vue.js实现简单ToDoList 前期准备(一)
2016/12/01 Javascript
JavaScript实现焦点进入文本框内关闭输入法的核心代码
2017/09/20 Javascript
Vim快速合并行及vim 将文件所有行合并到一行
2017/11/27 Javascript
使用pkg打包Node.js应用的方法步骤
2018/10/19 Javascript
Vuejs学习笔记之使用指令v-model完成表单的数据双向绑定
2019/04/29 Javascript
Vue图片浏览组件v-viewer用法分析【支持旋转、缩放、翻转等操作】
2019/11/04 Javascript
js实现简单的打印表格
2020/01/15 Javascript
JavaScript实现移动端带transition动画的轮播效果
2020/03/24 Javascript
Node.js API详解之 vm模块用法实例分析
2020/05/27 Javascript
koa中间件核心(koa-compose)源码解读分析
2020/06/15 Javascript
前端 javascript 实现文件下载的示例
2020/11/24 Javascript
Vue中ref和$refs的介绍以及使用方法示例
2021/01/11 Vue.js
Python线程详解
2015/06/24 Python
手把手教你用python抢票回家过年(代码简单)
2018/01/21 Python
基于python实现聊天室程序
2018/07/27 Python
Python产生Gnuplot绘图数据的方法
2018/11/09 Python
python语言线程标准库threading.local解读总结
2019/11/10 Python
windows下python安装pip方法详解
2020/02/10 Python
python读取yaml文件后修改写入本地实例
2020/04/27 Python
详解Django自定义图片和文件上传路径(upload_to)的2种方式
2020/12/01 Python
详解CSS3原生支持div铺满浏览器的方法
2018/08/30 HTML / CSS
HTML5 progress和meter控件_动力节点Java学院整理
2017/07/06 HTML / CSS
原生 JS+CSS+HTML 实现时序图的方法
2019/07/31 HTML / CSS
停课通知书
2015/04/24 职场文书
班委竞选稿范文
2015/11/21 职场文书
小学生节约用水倡议书
2019/08/12 职场文书
「我的青春恋爱物语果然有问题。-妄言录-」第20卷封面公开
2022/03/21 日漫