劣质的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 相关文章推荐
基于mysql的bbs设计(三)
Oct 09 PHP
PHP下escape解码函数的实现方法
Aug 08 PHP
PHP面向对象法则
Feb 23 PHP
解析:使用php mongodb扩展时 需要注意的事项
Jun 18 PHP
php使用date和strtotime函数输出指定日期的方法
Nov 14 PHP
php开发中的页面跳转方法总结
Apr 26 PHP
PHP生成条形码大揭秘
Sep 24 PHP
PHP 实现的将图片转换为TXT
Oct 21 PHP
PHP MySql增删改查的简单实例
Jun 21 PHP
PHP生成随机数的方法总结
Mar 01 PHP
php 命名空间(namespace)原理与用法实例小结
Nov 13 PHP
php获取是星期几的的一些常用姿势
Dec 15 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在window iis的莫名问题的测试方法
2013/05/14 PHP
PHP获取二维数组中某一列的值集合
2015/12/25 PHP
PHP+Ajax+JS实现多图上传
2016/05/07 PHP
jQuery 各种浏览器下获得日期区别
2008/12/22 Javascript
Javascript Jquery 遍历Json的实现代码
2010/03/31 Javascript
js获取class的所有元素
2013/03/28 Javascript
js购物车实现思路及代码(个人感觉不错)
2013/12/23 Javascript
require.js深入了解 require.js特性介绍
2014/09/04 Javascript
jQuery中get()方法用法实例
2014/12/27 Javascript
Bootstrap每天必学之警告框插件
2016/04/26 Javascript
JavaScript中实现键值对应的字典与哈希表结构的示例
2016/06/12 Javascript
setTimeout函数的神奇使用
2017/02/26 Javascript
js中删除数组中的某一元素实例(无下标时)
2017/02/28 Javascript
JavaScript实现的前端AES加密解密功能【基于CryptoJS】
2018/08/28 Javascript
webpack3里使用uglifyjs压缩js时打包报错的解决
2018/12/13 Javascript
使用vuex较为优雅的实现一个购物车功能的示例代码
2019/12/09 Javascript
[08:29]DOTA2每周TOP10 精彩击杀集锦vol.7
2014/06/25 DOTA
详解Python中的type()方法的使用
2015/05/21 Python
python递归查询菜单并转换成json实例
2017/03/27 Python
Python3 中文文件读写方法
2018/01/23 Python
Python列表与元组的异同详解
2019/07/02 Python
Python 给下载文件显示进度条和下载时间的实现
2020/04/02 Python
HTML5头部标签的一些常用信息小结
2016/10/23 HTML / CSS
沪江旗下的海量优质课程平台:沪江网校
2017/11/07 全球购物
英国拳击装备购物网站:RDX Sports
2018/01/23 全球购物
NYX Professional Makeup俄罗斯官网:世界知名的化妆品品牌
2019/12/26 全球购物
Moss Bros官网:英国排名第一的西装店
2020/02/26 全球购物
如何配置、使用和清除Smarty缓存
2015/12/23 面试题
对教师的评语
2014/04/28 职场文书
关于爱国的演讲稿
2014/05/07 职场文书
材料成型及控制工程专业求职信
2014/06/19 职场文书
民族学专业求职信
2014/07/28 职场文书
119消防日活动总结
2014/08/29 职场文书
人事主管岗位职责
2015/02/04 职场文书
荒岛余生观后感
2015/06/09 职场文书
如何解决springcloud feign 首次调用100%失败的问题
2021/06/23 Java/Android