劣质的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编实现程动态图像的创建代码
Sep 28 PHP
用PHP获取Google AJAX Search API 数据的代码
Mar 12 PHP
php 提速工具eAccelerator 配置参数详解
May 16 PHP
PHP 杂谈《重构-改善既有代码的设计》之三 重新组织数据
Apr 09 PHP
php牛逼的面试题分享
Jan 18 PHP
基于php-fpm的配置详解
Jun 03 PHP
php错误级别的设置方法
Jun 17 PHP
PHP管理依赖(dependency)关系工具 Composer 安装与使用
Aug 18 PHP
PHP Ajax JavaScript Json获取天气信息实现代码
Aug 17 PHP
PHP Socket网络操作类定义与用法示例
Aug 30 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
Sep 22 PHP
PHP创建XML接口示例
Jul 04 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如何透过ODBC来存取数据库
2006/10/09 PHP
在WIN98下以apache模块方式安装php
2006/10/09 PHP
使用淘宝IP库获取用户ip地理位置
2013/10/27 PHP
php发送邮件的问题详解
2015/06/22 PHP
如何使用Gitblog和Markdown建自己的博客
2015/07/31 PHP
thinkphp中的url跳转用法分析
2016/07/12 PHP
php 修改上传文件大小限制实例详解
2016/10/23 PHP
PHP与SQL语句常用大全
2016/12/10 PHP
jQuery入门第一课 jQuery选择符
2010/03/14 Javascript
jquery下为Event handler传递动态参数的代码
2011/01/06 Javascript
c#和Javascript操作同一json对象的实现代码
2012/01/17 Javascript
12款经典的白富美型—jquery图片轮播插件—前端开发必备
2013/01/08 Javascript
JQuery中操作Css样式的方法
2014/02/12 Javascript
javascript学习笔记(二)数组和对象部分
2014/09/30 Javascript
JavaScript中的DSL元编程介绍
2015/03/15 Javascript
JS+DIV+CSS排版布局实现美观的选项卡效果
2015/10/10 Javascript
JSON格式的时间/Date(2367828670431)/格式转为正常的年-月-日 格式的代码
2016/07/27 Javascript
Angular2内置指令NgFor和NgIf详解
2016/08/03 Javascript
微信小程序  modal弹框组件详解
2016/10/27 Javascript
jQuery实现ToolTip元素定位显示功能示例
2016/11/23 Javascript
bootstrap模态框跳转到当前模板页面 框消失了而背景存在问题的解决方法
2020/11/30 Javascript
jQuery实现table表格checkbox全选的方法分析
2018/07/04 jQuery
vue项目中使用scss的方法步骤
2019/05/16 Javascript
layer更改皮肤的实现方法
2019/09/11 Javascript
Vue项目接入Paypal实现示例详解
2020/06/04 Javascript
JavaScript实现消消乐的源代码
2021/01/12 Javascript
[06:24]DOTA2 2015国际邀请赛中国区预选赛第二日TOP10
2015/05/27 DOTA
[53:18]Spirit vs Liquid Supermajor小组赛A组 BO3 第三场 6.2
2018/06/03 DOTA
使用python实现ftp的文件读写方法
2019/07/02 Python
Python写出新冠状病毒确诊人数地图的方法
2020/02/12 Python
使用Django和Postgres进行全文搜索的实例代码
2020/02/13 Python
解决python便携版无法直接运行py文件的问题
2020/09/01 Python
《三个小伙伴》教学反思
2014/04/11 职场文书
实习公司领导推荐函
2014/05/21 职场文书
合同和协议有什么区别?
2014/10/08 职场文书
面试分析分布式架构Redis热点key大Value解决方案
2022/03/13 Redis